<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Docker中文</title><link>https://www.kubernetes.top/</link><description>docker.top</description><item><title>Kubernetes v1.37 正式发布：67 项增强，AI 调度与平台安全再升级</title><link>https://www.kubernetes.top/?id=465</link><description>&lt;section style=&quot;text-align: center;visibility: visible&quot; nodeleaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071829519466741.png&quot; alt=&quot;7cd10ccf6543269b56983e74bd75472e.png&quot; width=&quot;638&quot; height=&quot;384&quot; style=&quot;width: 638px; height: 384px;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;北京时间 2026 年 8 月 26 日，Kubernetes 社区正式发布 Kubernetes v1.37，版本代号为&lt;span textstyle=&quot;&quot; style=&quot;visibility: visible&quot;&gt;Garhwal&lt;/span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;本次版本共包含&lt;span textstyle=&quot;&quot; style=&quot;visibility: visible&quot;&gt;67 项增强&lt;/span&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;visibility: visible&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;16 项功能升级至 Stable；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;23 项功能升级至 Beta；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;27 项功能进入 Alpha；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;1 项弃用或移除变更。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;visibility: visible&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible&quot;&gt;Kubernetes v1.37 的重点集中在 AI/机器学习工作负载、资源调度、集群稳定性、安全隔离、存储管理和运维体验等方向。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;一、&lt;span class=&quot;&quot; link-id=&quot;link-1788776915652-0.3898186089100595&quot;&gt;HPA&lt;/span&gt; 支持工作负载缩容至零&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在 Kubernetes v1.37 中，HorizontalPodAutoscaler（HPA）缩容至零的能力升级至 Beta，并默认启用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对于队列消费者、批处理任务和 GPU 工作负载，当系统处于空闲状态时，HPA 可以将 Pod 数量缩减到 0；当外部指标或&lt;span class=&quot;&quot; link-id=&quot;link-1788776915652-0.32546891120391896&quot;&gt;对象指标&lt;/span&gt;再次出现工作负载时，再自动恢复 Pod。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力适用于：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;消息队列消费者；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;定时或批量处理任务；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;AI 推理服务；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;低频访问的后台服务；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;按需运行的计算任务。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;需要注意的是，基于 CPU 和内存指标无法实现缩容至零，因为这些指标依赖正在运行的 Pod。该功能主要面向外部指标和对象指标场景。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;二、Gang Scheduling 升级至 Beta&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;随着 Kubernetes 承载越来越多 AI/ML 训练任务和 &lt;span class=&quot;&quot; link-id=&quot;link-1788776915653-0.04612244495409479&quot;&gt;HPC&lt;/span&gt; 作业，多个 Pod 必须同时获得资源才能运行的场景越来越普遍。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;传统调度方式会逐个调度 Pod，可能出现部分 Pod 已经运行、剩余 Pod 一直等待资源的情况，最终导致任务无法取得进展。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 将 Gang Scheduling，也就是组调度能力升级至 Beta。它采用“全部调度或全部等待”的策略，确保一个工作负载所需的 Pod 能够整体获得资源。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力可以改善：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;分布式 AI 训练；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;大规模模型推理；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;HPC 科学计算；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;分布式批处理；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;多 Pod 紧密协作的工作负载。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;同时，v1.37 还引入了面向工作负载的抢占和 &lt;span class=&quot;&quot; link-id=&quot;link-1788776915653-0.16226606681693068&quot;&gt;PodGroup&lt;/span&gt; 排队机制，减少无效抢占和多个任务之间反复争抢资源的问题。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;三、DRA 能力进一步成熟&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Dynamic Resource Allocation（DRA）是 Kubernetes 面向 GPU、NPU、网络设备和其他专用硬件的资源分配机制。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;v1.37 中，多项 DRA 能力升级至 Stable，包括：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;ResourceClaim 设备状态；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;通过 DRA 驱动处理扩展资源请求；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;设备 Taint 和 Toleration；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;设备 NUMA 节点属性。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这意味着 Kubernetes 可以更细致地管理异构硬件资源。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;例如，Pod 可以继续使用传统扩展资源方式请求设备：&lt;/span&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot;&gt;&lt;pre data-lang=&quot;apache&quot;&gt;resources:&amp;nbsp;&amp;nbsp;limits:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;example.com/gpu:&amp;nbsp;3&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;同时由 DRA 驱动完成设备分配，而不一定需要单独部署传统 Device Plugin。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对于 AI 基础设施团队而言，这将有助于实现更灵活的 GPU 调度、设备隔离和 NUMA 感知调度。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;四、metrics.k8s.io API 正式进入 Stable&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;经过近九年的 Beta 阶段，metrics.k8s.io API 在 Kubernetes v1.37 中升级至 Stable。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该 API 为 Kubernetes 提供 Pod 和节点的 CPU、内存使用指标，广泛用于：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;kubectl top；&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;HorizontalPodAutoscaler；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;集群资源监控；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;基础资源利用率分析。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;v1.37 不会立即移除 v1beta1，现有工作流可以继续使用。未来 Kubernetes 将逐步以稳定版 v1 API 为主要接口。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这对监控系统、自动扩缩容组件和第三方控制器来说，是一个重要的稳定性信号。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;五、API Server 启动和恢复更加稳定&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 完成了 Watch Cache 初始化增强，进一步降低 API Server 启动或恢复期间对 etcd 造成的压力。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在大型集群中，Watch Cache 初始化可能触发大量 List 和 Watch 请求。如果请求同时涌入 etcd，可能导致控制平面出现延迟甚至服务不可用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;v1.37 会对这类请求进行更合理的限制：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;避免请求集中冲击 etcd；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;控制 API Priority and Fairness 压力；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;对无法立即处理的请求返回 HTTP 429；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;通过&amp;nbsp;&lt;/span&gt;&lt;code&gt;Retry-After&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;引导客户端重试。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;因此，自定义 Controller 和 Operator 应正确处理 HTTP 429，并实现指数退避重试。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;六、SELinuxMount 与 SELinuxChangePolicy 升级至 Stable&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 将 SELinuxMount 和 SELinuxChangePolicy 升级至 Stable，并默认启用相关行为。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;符合条件的 CSI 驱动可以使用挂载上下文：&lt;/span&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot;&gt;&lt;pre data-lang=&quot;diff&quot;&gt;-o&amp;nbsp;context=&amp;lt;label&amp;gt;&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这种方式可以避免传统的递归重新标记，从而改善部分存储卷挂载场景的性能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;不过，单个挂载只能携带一个 SELinux 上下文。如果多个使用不同 SELinux 标签的 Pod 共享同一个存储卷，升级后可能出现 Pod 无法启动的情况。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;启用了 SELinux 的生产集群，升级前应检查：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;CSI 驱动是否支持 SELinuxMount；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;不同安全标签的 Pod 是否共享存储卷；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;存储卷挂载和卸载是否正常；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否需要为特定工作负载设置&amp;nbsp;&lt;/span&gt;&lt;code&gt;seLinuxChangePolicy: Recursive&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;未启用 SELinux 的集群通常不会受到影响。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;七、StorageVersionMigration API 升级至 Stable&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 将 StorageVersionMigration API 升级至 Stable，并默认启用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;当 API 版本发生变化，或者存储加密配置需要更新时，集群中的历史资源可能需要重新写入。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;过去，管理员通常需要使用脚本执行大量 kubectl get 和 kubectl replace 操作。现在，可以通过声明式的 StorageVersionMigration 对象触发资源迁移，由 Kubernetes 控制器自动完成。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力适用于：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;API 存储版本升级；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;CRD 版本迁移；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;加密配置更新；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;大规模资源重新写入。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这将降低集群升级和 API 演进过程中的运维复杂度。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;八、Pod 证书与集群信任包升级至 Stable&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Pod Certificates 和 ClusterTrustBundles 在 Kubernetes v1.37 中升级至 Stable。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这为 Pod 提供了更加标准化的证书和信任根分发机制，支持向工作负载提供：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;私钥；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;X.509 证书；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;集群信任包；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;自动刷新后的身份凭据。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力可以用于服务间&lt;span class=&quot;&quot; link-id=&quot;link-1788776915653-0.671622565940088&quot;&gt;双向 TLS&lt;/span&gt;、工作负载身份认证和集群内部安全通信，减少应用自行管理证书的复杂度。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;九、KYAML 正式进入 Stable&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;KYAML 是 Kubernetes 面向 YAML 配置推出的更加严格、明确的格式子集。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;它不是 YAML 的替代品，而是 YAML 的一种更安全、更少歧义的写法。所有 KYAML 文件仍然是合法 YAML，因此现有 kubectl 和大多数 YAML 工具无需改变即可继续使用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在 v1.37 中：&lt;/span&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot;&gt;&lt;pre data-lang=&quot;cs&quot;&gt;kubectl&amp;nbsp;get&amp;nbsp;-o&amp;nbsp;kyaml&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;正式进入 Stable。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对于配置规模较大的团队，KYAML 有助于降低 YAML 隐式类型和格式歧义带来的问题。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;十、需要关注的兼容性变化&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;font-size: 17px;font-weight: 400;color: #2B77BF;line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;kube-proxy 的 IPVS 模式进入弃用阶段&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 开始对 kube-proxy 的 IPVS 模式发出弃用警告。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;官方后续计划是：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;v1.37：开始弃用提示；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;预计 v1.40：默认禁用；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;预计 v1.43：完全移除。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;正在使用 IPVS 模式的集群，应提前评估 nftables 或其他网络方案。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;可以通过以下命令检查当前配置：&lt;/span&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot;&gt;&lt;pre data-lang=&quot;perl&quot;&gt;kubectl&amp;nbsp;-n&amp;nbsp;kube-system&amp;nbsp;get&amp;nbsp;configmap&amp;nbsp;kube-proxy&amp;nbsp;\&amp;nbsp;&amp;nbsp;-o&amp;nbsp;jsonpath=&amp;#39;{.data.config\.conf}&amp;#39;&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&amp;#39;mode:&amp;#39;&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;此外，Static Pod 不再允许引用 Secret 或 ConfigMap，仍使用 cgroup v1 的节点也应尽快迁移到 cgroup v2。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 用户如何看待 Kubernetes v1.37？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 负责容器镜像构建、开发环境运行和本地调试，Kubernetes 则负责生产环境中的容器编排、调度、扩缩容和故障自愈。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;一个常见工作流是：&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;使用 Docker 构建应用镜像；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;在 Docker 环境中完成容器测试；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;使用 Kubernetes 清单或 Helm 部署应用；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;通过 Kubernetes 管理生产工作负载；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;使用监控、日志和策略系统完成持续运维。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 对 Docker 用户最直接的影响包括：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;更好地支持 AI 和 GPU 工作负载；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;HPA 可以将部分服务缩容到零；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;metrics.k8s.io API 更加稳定；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;存储和安全能力进一步增强；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;集群升级时需要关注 IPVS、SELinux 和 cgroup v2。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;升级建议&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;生产环境升级 Kubernetes v1.37 前，建议重点检查：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;容器运行时和 CNI、CSI 插件的兼容性；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;kube-proxy 是否使用 IPVS；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;节点是否仍依赖 cgroup v1；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Static Pod 是否引用 Secret 或 ConfigMap；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;SELinux 与 CSI 存储卷行为；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;自定义 Controller 是否能够处理 HTTP 429；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;监控系统是否兼容稳定版 metrics API；&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;GPU、NPU 和其他设备插件是否支持 DRA。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;建议先在测试集群验证，再采用分批、灰度方式升级生产环境。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;font-size: 17px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;结语&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 的正式发布，标志着 Kubernetes 在 AI 工作负载、异构资源调度、集群稳定性和安全隔离方面继续向前推进。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;其中，HPA 缩容至零、Gang Scheduling、DRA 稳定化、metrics.k8s.io API GA、StorageVersionMigration GA，以及 Pod 证书能力，都是值得平台工程团队重点关注的变化。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对于 Docker 用户来说，Kubernetes v1.37 不只是一次版本升级，更是从容器运行走向智能调度、统一资源管理和平台化交付的重要一步。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;font-size: 17px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot;&gt;&lt;span leaf=&quot;&quot;&gt;官方参考资料：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;font-size: 15px;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;Kubernetes v1.37 正式发布公告&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;https://kubernetes.io/blog/2026/08/26/kubernetes-v1-37-release/&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 官方版本页面&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: normal&quot;&gt;https://kubernetes.io/releases/1.37/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.37 CHANGELOG&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: normal&quot;&gt;https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.37.md&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes 官方博客&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: normal&quot;&gt;https://kubernetes.io/blog/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;border-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;border-color: rgba(0, 0, 0, 0.098);transform-origin: 0px 0px 0px;transform: scale(1, 0.5);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent;margin-top: 0px;margin-bottom: 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #B2B2B2;font-size: 15px;letter-spacing: 0.408px;text-align: left;word-spacing: 1px&quot;&gt;免责声明：本文部分内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;border-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;border-color: rgba(0, 0, 0, 0.098);transform-origin: 0px 0px 0px;transform: scale(1, 0.5);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent;margin-top: 0px;margin-bottom: 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;letter-spacing: 1px;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071831058655994.png&quot; alt=&quot;image.png&quot; width=&quot;484&quot; height=&quot;155&quot; style=&quot;width: 484px; height: 155px;&quot;/&gt;&lt;/section&gt;</description><pubDate>Fri, 28 Aug 2026 18:28:36 +0800</pubDate></item><item><title>Nginx 502 故障排查指南：日志分析与配置陷阱定位</title><link>https://www.kubernetes.top/?id=467</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071841071930660.jpg&quot; alt=&quot;140e1b3d3f5f1d16d6979ff7004fb0dd.jpg&quot; width=&quot;683&quot; height=&quot;375&quot; style=&quot;width: 683px; height: 375px;&quot;/&gt;&lt;/section&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;引言&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway 是 Nginx 作为反向代理服务器时最常遭遇的错误状态码。这个错误意味着 Nginx 作为网关，成功与后端&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777612924-0.4244639560737017&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;upstream&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;建立了连接，但后端返回了一个无效响应，或者在传输过程中连接被异常关闭。表面上 502 只是一个 HTTP 状态码，实际上它是一系列配置错误、网络故障、后端异常的综合表现。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文基于 Nginx 1.26.x/1.27.x（截至 2026 年 4 月的稳定版本）、PHP-FPM 8.2/8.3、Node.js 20 LTS/22 LTS 等最新稳定版本，系统性地拆解 502 错误的成因、排查方法、解决方案和预防策略。文章假设读者具备基本的 Linux 运维能力、Nginx 配置文件阅读经验，以及后端应用的调试基础。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、问题场景：为什么需要关注 502 错误&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 502 是最常见的 Nginx 错误&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在生产环境中，Nginx 作为入口网关承接所有外部流量。一旦出现 502 错误，意味着用户请求无法正常处理，直接影响业务可用性。根据多个大型网站的运维统计，Nginx 相关故障中&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777612925-0.8518072613483471&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;502 Bad Gateway&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;占到了 40% 至 60%，是所有 Nginx 错误码中出现频率最高的一种。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;业务影响量化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;用户点击链接后遭遇 502 页面，平均停留时长不超过 3 秒即会离开。对于电商网站，这直接导致购物车 abandonment；对于金融交易系统，502 可能意味着交易中断甚至数据不一致；对于 API 服务，502 会触发客户端重试风暴，进一步压垮后端。行业通用的估算公式是：每 1% 的 502 错误率可能导致 0.5% 至 2% 的业务损失，具体取决于业务类型和用户耐心度。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;根因多样性与排查复杂性&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误的根因涵盖多个层面：网络层（物理链路中断、DNS 解析失败、防火墙拦截）、传输层（TCP 连接被重置、端口未监听）、应用层（后端进程崩溃、超时配置不合理、缓冲区溢出）、系统层（文件描述符耗尽、内存不足、内核参数限制）、安全层（SELinux/&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777612925-0.5960830539365995&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;AppArmor&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;强制访问控制、iptables 规则拦截）。这种多层次性导致同一个 502 症状可能对应完全不同的根因。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多层代理架构进一步增加了排查难度。现代生产环境中，请求可能经过&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777612926-0.11261605466378444&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;CDN&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;→ 边缘 Nginx → 负载均衡层 → 应用 Nginx → 后端服务，其中任何一个节点的故障都可能以 502 形式呈现。而日志分散在多个层级，request_id 串联成为必要手段而非可选项。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志阅读能力缺失是排查失败的主因&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大量工程师遇到 502 后的第一反应是重启 Nginx 或后端服务，这种做法往往只能短暂恢复问题，无法根治。更深层的问题在于：Nginx error.log 中已经记录了详细的错误原因，但工程师不知道如何解读这些日志条目。例如&amp;quot;upstream prematurely closed connection&amp;quot;和&amp;quot;connect() failed (111: Connection refused)&amp;quot;虽然都导致 502，但指向的根因完全不同，处理方式也截然不同。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.2 502 与 504：同样的网关错误，不同的根因&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解 HTTP 502 与 504 的本质区别，是准确定位问题的前提。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 向 upstream 发起请求并成功建立连接，但 upstream 返回了非正常的响应。这个响应可能是：连接建立后立即关闭（无任何数据返回）、返回了无效的 HTTP 响应（格式损坏）、连接被上游设备中断（RST 包）、或者 upstream 在协议层面出现错误（Nginx 无法解析上游的响应）。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;典型错误日志：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:15:32 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwj-v7du72&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;927c&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *8921 upstream prematurely closed connection while reading response header of upstream, client: 203.0.113.45, server: api.example.com, request: &amp;quot;GET /api/v2/users HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/v2/users&amp;quot;, upstream_connection: &amp;quot;9612&amp;quot;, upstream_bytes_sent: 0, upstream_bytes_received: 0, upstream_trailers: &amp;quot;X-Request-Id: abc123&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 09:22:18 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-8bm0d4&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;1664&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *9234 connect() failed (111: Connection refused) while connecting to upstream, client: 198.51.100.23, server: www.example.com, request: &amp;quot;POST /api/orders HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:9000/api/orders&amp;quot;, upstream_connection: &amp;quot;128&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504 Gateway Timeout&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 向 upstream 发起请求并成功建立了 TCP 连接，但 upstream 在规定时间内没有返回任何数据。超时触发后，Nginx 主动关闭连接并向客户端返回 504。504 的根因通常是后端处理时间过长（数据库查询阻塞、第三方 API 调用卡住、计算密集型任务卡死），或者 upstream 进程处于僵死状态（不崩溃但不处理请求）。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;典型错误日志：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 10:45:07 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-ii8nqx&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;f9d4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *10234 upstream timed out (110: Connection timed out) while reading response header of upstream, client: 203.0.113.89, server: api.example.com, request: &amp;quot;GET /api/reports HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/reports&amp;quot;, upstream_connection: &amp;quot;15623&amp;quot;, upstream_bytes_sent: 234, upstream_bytes_received: 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 11:02:33 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-ctnolw&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;9a9f&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *10891 upstream timed out (110: Connection timed out) after 30000 ms (110: Connection timed out) while connecting to upstream, client: 198.51.100.67, server: www.example.com, request: &amp;quot;POST /api/upload HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:9090/api/upload&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;499 Client Closed Request&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这不是 Nginx 返回给客户端的错误码，而是 Nginx 记录的一种状态，表示客户端在 upstream 响应完成之前主动断开了连接（可能是客户端超时、用户取消请求、Nginx 侧配置了 client_body_timeout 或lingering_timeout 强制关闭）。499 不算 upstream 的故障，但在高并发场景下大量出现 499 可能暗示 upstream 处理速度过慢，迫使客户端等待超时。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 12:18:45 [info] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-3hj7g3&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;f9bf&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *11567 client closed connection while waiting for response, client: 203.0.113.112, server: api.example.com, request: &amp;quot;GET /api/stream HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/stream&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500 vs 503 vs 502：细节差异&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500 Internal Server Error&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：请求已经到达 upstream，upstream 在处理过程中发生了未捕获的异常或配置错误导致崩溃。这是 upstream 自身的问题，Nginx 只是转发了上游的错误响应。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;503 Service Temporarily Unavailable&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：upstream 正常工作且能够响应，但 Nginx 的限流模块（limit_req_zone）或连接数限制（limit_conn_zone）触发了降级。503 通常带有 Retry-After 头，暗示客户端稍后重试。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：upstream 连接失败或返回了无效响应。可能是 upstream 彻底不可用，也可能是连接建立后数据交换过程中断裂。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 典型踩坑场景分类&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在多年的生产环境排障经历中，502 错误可以归纳为以下典型场景。每个场景都有其特征性日志和明确的解决路径。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景一：upstream 配置错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最基础的配置错误是 ip:port 写错或域名解析失败。Nginx 启动时不会验证 upstream 的可到达性，只有在实际请求时才会尝试连接。如果配置中写错了 IP 地址（例如 127.0.0.18 而不是 127.0.0.1），或者端口号与实际监听不一致，Nginx 会在 error.log 中记录&amp;quot;Connection refused&amp;quot;错误。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误配置示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实际服务运行在 8080 端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正确配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景二：后端服务未启动&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是最常见也最容易被忽视的场景。Nginx 进程由 systemd 托管可以保证 Nginx 自身的高可用，但后端服务（PHP-FPM、Node.js 应用、Gunicorn、Tomcat 等）可能因为各种原因退出：&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777612925-0.7713260570915561&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;OOM Killer&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;杀死进程、代码 bug 导致崩溃、依赖的数据库或中间件不可用。Nginx 仍然在运行，请求到达后才发现 upstream 无响应。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# systemctl 检查 PHP-FPM 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl status php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;● php-fpm.service - PHP FastCGI Process Manager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: enabled)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Active: inactive (dead) since Thu 2026-04-24 08:00:12 CST; 2h 15min ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Main PID: 4521 (code=exited, status=0/SUCCESS)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景三：超时设置过短&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 的默认超时值通常比较保守（proxy_connect_timeout 60s、proxy_read_timeout 60s）。对于处理时间较长的请求（如文件上传、大数据量导出、复杂数据库查询、调用外部 API），默认超时会导致正常请求被误杀。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认超时配置（过短）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 60s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 60秒对于复杂查询不够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优化后的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 300s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 根据业务特点调整&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout 10s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接超时可以保持较短&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景四：缓冲区配置不当&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 使用缓冲区来暂存 upstream 的响应数据。当 upstream 返回大文件或流式数据时，缓冲区配置不足会导致内存溢出或写入磁盘临时文件，极端情况下会触发 502。缓冲区满的症状是 error.log 中出现&amp;quot;upstream buffer is too small&amp;quot;或大量临时文件被写入 /var/lib/nginx/proxy。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓冲区不足的典型日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 14:22:15 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-4i2ad7&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;8693&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *12891 an upstream response is buffered to a temporary file /var/lib/nginx/proxy/0000000123, size: 16384 bytes, expect: 5242880 bytes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景五：keepalive 配置缺失&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP/1.1 默认支持 keepalive 连接复用。如果 upstream 块中没有配置 keepalive，Nginx 会为每个请求创建新的 TCP 连接。高并发场景下，频繁的 TCP 握手/挥手消耗大量资源，可能导致 upstream 过载或连接数溢出。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 没有 keepalive 的 upstream 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优化后：配置 keepalive 连接池&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 保持 32 个空闲连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每个连接最多处理 1000 请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 空闲连接保持 60 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景六：权限问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当 upstream 使用 Unix Domain Socket 通信时，socket 文件的权限和所有权必须与 Nginx worker 进程的用户匹配。PHP-FPM 默认使用 www-data 用户创建 socket，而 Nginx 默认使用 nginx 用户运行 worker 进程，两者不匹配时会导致&amp;quot;Permission denied&amp;quot;错误。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /var/log/nginx/error.log 中的权限错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 15:33:27 [crit] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-r72moy&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;86da&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *13456 connect() to unix:/var/run/php-fpm/www.sock failed (13: Permission denied) while connecting to upstream&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SELinux 强制访问控制是另一个容易忽视的权限问题。即使 socket 文件权限正确，SELinux 策略也可能阻止 Nginx 与后端通信。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、核心原理与关键概念拆解&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 Nginx 处理请求的完整流程&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解 Nginx 内部处理请求的各个阶段，是准确定位 502 根因的基础。Nginx 采用模块化架构，请求处理分为 11 个阶段（phase）：post-read、server-rewrite、find-config、rewrite、post-rewrite、preaccess、access、post-access、precontent、content、log。502 错误主要发生在 content 阶段和 log 阶段之间。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接接受阶段&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx master 进程监听配置的端口（80/443），worker 进程通过 accept_mutex 机制竞争接受新连接。在多核系统中，Nginx 默认使用 epoll 事件模型高效处理大量并发连接。关键配置参数：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：每个 worker 进程可处理的最大连接数（默认 512）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;multi_accept on&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：每个 worker 进程尽可能多地接受新连接&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;use epoll&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 epoll 事件模型（Linux 高效）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前 Nginx 连接状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ss -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total: 298 (kernel 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TCP: &amp;nbsp; 185 (estab 142, closed 12, orphaned 0, synrecv 0, timewait 5/0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Transport Total &amp;nbsp; &amp;nbsp; IP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPv6&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 298 &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RAW &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;UDP &amp;nbsp; &amp;nbsp; &amp;nbsp; 12 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TCP &amp;nbsp; &amp;nbsp; &amp;nbsp; 173 &amp;nbsp; &amp;nbsp; &amp;nbsp; 166 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;INET &amp;nbsp; &amp;nbsp; &amp;nbsp;185 &amp;nbsp; &amp;nbsp; &amp;nbsp; 174 &amp;nbsp; &amp;nbsp; &amp;nbsp; 11&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;FRAG &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -V 2&amp;gt;&amp;amp;1 | grep -o&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;with-http_stub_status_module&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;with-http_stub_status_module&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用状态页面查看连接详情&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /nginx_status {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stub_status on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl http://127.0.0.1/nginx_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Active connections: 142&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server accepts handled requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1289345 1289345 3456782&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Reading: 3 Writing: 12 Waiting: 127&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求解析与 Location 匹配&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接接受后，Nginx 解析 HTTP 请求行和请求头，根据 server_name（基于 Host header 匹配）和 location 块（精确匹配或正则匹配）确定请求的处理方式。对于反向代理配置，请求最终会进入 proxy_pass 或 fastcgi_pass 处理。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# nginx.conf 中的 server 块和 location 匹配示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 精确匹配 /api/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location = /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 前缀匹配 /api/v2/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/v2/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_v2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正则匹配（~ 区分大小写，~* 不区分大小写）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* ^/api/v\d+/users {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_users;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代理转发阶段&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求匹配到 proxy_pass 或 fastcgi_pass 后，Nginx 作为反向代理与 upstream 通信。反向代理的核心流程：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解析 proxy_pass 指令，确定 upstream 地址&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从 upstream 块中选择一个 server（默认加权轮询）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建立与 upstream 的 TCP 连接（触发 connect 事件）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发送 HTTP 请求（可能受限于 send_timeout）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接收 upstream 响应头（受限于 proxy_read_timeout）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接收 upstream 响应体（受限于 buffer 配置）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将响应转发给客户端&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 核心 proxy 配置解析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 指向 upstream 块&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 以下请求头默认会被传递&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Host: $host&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Real-IP: $remote_addr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Forwarded-For: $proxy_add_x_forwarded_for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-Forwarded-Proto: $scheme&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_http_version 1.1; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 1.0，1.1 支持 chunked 编码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header Host&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$host&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$remote_addr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应处理与缓冲区机制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 收到 upstream 响应后，先将响应头存入&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（默认 4k/8k），响应体存入&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置的缓冲区。如果响应体数据量超过可用缓冲区总和，剩余数据会写入磁盘临时文件（受&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_max_temp_file_size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;限制，默认 1024m）。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓冲区满或写入临时文件时，Nginx 不会立即返回 502，但如果 upstream 发送速度过快且 buffer 机制未启用（&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffering off&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;），则可能出现数据积压导致超时。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓冲区配置详解&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffering on; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用缓冲区（默认开启）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size 128k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 响应头缓冲区，通常 128k 足够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers 8 256k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 8 个 256k 缓冲区，用于响应体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_busy_buffer_size 256k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 忙碌时使用的缓冲区大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_max_temp_file_size 1024m; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时文件总大小上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_temp_file_write_size 128k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每次写入临时文件的大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接关闭与 keepalive&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP/1.1 默认使用 keepalive 保持连接复用。Nginx 通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;控制连接保持打开的空闲时间，通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_requests&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;限制单个连接处理的最大请求数。proxy 模块通过&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_http_version 1.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_set_header Connection &amp;quot;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;来管理与 upstream 的 keepalive 连接。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# upstream keepalive 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 保持 32 个空闲连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_http_version 1.1; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 必须使用 1.1 才能支持 keepalive&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header Connection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清除 Connection 头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 upstream 健康检查机制&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx upstream 模块支持被动健康检查，通过 max_fails 和 fail_timeout 参数实现故障节点的自动剔除。对于需要主动探测的场景，可以使用第三方模块 nginx_upstream_check_module。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;被动健康检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 默认对每个 upstream server 进行被动健康检查。当某个 server 连续 max_fails 次连接失败（Connection refused、timeout 等），Nginx 会将该 server 标记为不可用，持续 fail_timeout 秒后重新尝试。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# upstream 被动健康检查配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8082 max_fails=3 fail_timeout=10s backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数说明：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max_fails&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：默认 1。设置为 0 则禁用对该 server 的健康检查。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fail_timeout&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：默认 10s。既是 server 被判定为不可用后持续的时间，也是统计失败次数的时间窗口。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backup&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：标记为备用服务器，仅在主服务器全部不可用时才启用。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 upstream 配置和状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -T 2&amp;gt;&amp;amp;1 | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080 weight=5 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 weight=3 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8082 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 观察 error.log 中标记 server 不可用的日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:05:12 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-frxhp1&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;386c&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *2341 upstream server temporarily disabled while connecting to upstream, client: 203.0.113.45, server: api.example.com, request: &amp;quot;GET /api/health HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/health&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主动健康检查（nginx_upstream_check_module）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官方 Nginx 不包含主动健康检查模块，需要使用阿里巴巴开源的 nginx_upstream_check_module。该模块允许 Nginx 主动向后端发送 TCP/HTTP 心跳包，根据响应判断 server 是否健康。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 编译安装时加载模块&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./configure --add-module=/path/to/nginx_upstream_check_module&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# upstream 配置中添加主动健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每隔 3 秒对所有 server 进行检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查类型为 HTTP，检查 URI /health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超时 1 秒，连续失败 2 次则标记为不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=2 timeout=1000&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_send&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx http_3xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 状态页面查看健康检查结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /upstream_status {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl http://127.0.0.1/upstream_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Upstream server status:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server 127.0.0.1:8080 &amp;nbsp; &amp;nbsp; &amp;nbsp;up &amp;nbsp; &amp;nbsp; &amp;nbsp;1234567890 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server 127.0.0.1:8081 &amp;nbsp; &amp;nbsp; &amp;nbsp;down &amp;nbsp; &amp;nbsp;0 ms (2/2)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;动态 upstream 与服务发现&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在容器化和微服务架构中，upstream 列表需要动态更新。常见方案：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Consul/Etcd + Consul-template 或 etcd dynamical&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：通过服务发现系统维护后端列表，使用模板工具动态生成 Nginx 配置文件并 reload。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenResty + lua-upstream-nginx-module&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 Lua 脚本直接操作 Nginx upstream 内存结构，实现运行时更新。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx Plus 商业版&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：原生支持 DNS 发现和 API 动态修改 upstream。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# consul-template 配置文件示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; {{ range service&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server {{ .Address }}:{{ .Port }};&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; {{ end }}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 缓冲区机制深度解析&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓冲区是 Nginx 与 upstream 之间数据传输的核心机制。理解缓冲区的工作方式，能够解释许多看似莫名其妙的超时和 502 错误。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size：响应头缓冲区&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 收到 upstream 的响应状态行和响应头后，将其存储在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;指定的内存区域中。默认值为 4k 或 8k（取决于操作系统页大小）。对于绝大多数 HTTP 响应头，这个大小足够。如果 upstream 返回的响应头过大（如大量 Cookie、复杂 CSP 头），可能需要增大此值。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 响应头过大时的错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 09:15:33 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-04e5vs&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;4165&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *4521 could not build large header, shoulder increase the size of proxy_buffer_size&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调整响应头缓冲区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size 256k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 增大到 256k&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers：响应体缓冲区&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体数据块被缓存在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;分配的内存缓冲区中。如果响应体总大小超过所有缓冲区的总容量，剩余数据会写入磁盘临时文件。临时文件路径由&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_temp_path&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;指定（默认 /var/lib/nginx/proxy）。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers 8 4k/8k; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 8 个缓冲区，每个 4k 或 8k&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大文件下载场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers 16 32k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffering on; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确保启用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_max_temp_file_size 2048m; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许最大 2G 临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 出现大量临时文件时的告警日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 10:22:15 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-sgjnyn&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;e0a4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *7823 upstream sent chunked body with size larger than the whole proxy buffers space while reading upstream&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_busy_buffer_size：忙碌缓冲区&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当 Nginx 开始向客户端发送响应时，如果客户端网络速度较慢，Nginx 会继续从 upstream 读取数据并存入缓冲区。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_busy_buffer_size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;定义了在等待客户端接收数据时可以使用的最大缓冲区总大小。默认等于&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;中的单个缓冲区大小。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_buffering / uwsgi_buffering / scgi_buffering&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于 PHP-FPM 环境，使用 fastcgi_pass 时，缓冲区配置指令前缀变为&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_buffer_&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。原理与 proxy buffering 完全一致。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# PHP-FPM 环境缓冲区配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_buffer_size 128k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_buffers 4 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_busy_buffers_size 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_max_temp_file_size 1024m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fastcgi_temp_file_write_size 128k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 超时体系全面解析&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 的超时配置构成一个多层次的体系，不同的超时指令控制请求处理的不同阶段。错误地设置超时是导致 502 和 504 的最常见原因。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout：建立连接的超时&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 等待与 upstream 建立 TCP 握手完成的超时。如果 upstream 服务器的端口未监听或网络不通，这个超时会在第一次连接尝试时触发。默认值 60s 通常足够，但如果 upstream 位于跨地域网络或高负载环境中，可能需要适当调大。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 60 秒，跨地域场景可调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 高延迟网络环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout 10s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 10 秒足够检测出不可达&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# connect timeout 的错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 11:05:08 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-veje5p&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;9736&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *8921 connect() failed (110: Connection timed out) while connecting to upstream, client: 203.0.113.45, upstream: &amp;quot;http://10.0.1.55:8080/&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_send_timeout：向后端发送请求的超时&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 向 upstream 发送请求体的超时。对于 POST/PUT 请求（表单提交、文件上传、API 调用），如果请求体数据量大或上游处理慢，可能触发此超时。默认值 60s。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件上传等大请求场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_send_timeout 300s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size 100m; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许最大请求体 100M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout：读取后端响应的超时&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 从 upstream 读取响应头和响应体的总超时。这是生产环境中最常需要调整的参数。默认值 60s，对于复杂业务逻辑、数据库查询、第三方 API 调用等场景，60s 往往不够。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 长时间处理的后端服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 300s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_send_timeout 300s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时性要求高的 API&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# read timeout 的错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 12:30:45 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-n8yt20&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;3a16&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *10234 upstream timed out (110: Connection timed out) while reading response header of upstream, client: 198.51.100.23, upstream: &amp;quot;http://127.0.0.1:8080/api/report&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;send_timeout：发送给客户端的超时&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制 Nginx 向客户端发送数据的超时，与 upstream 无关。如果客户端网络慢或客户端停滞，Nginx 在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;send_timeout&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;期间未发送任何数据后会关闭连接。这个超时不影响 502，但可能导致客户端收到不完整的响应。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 60 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout：keepalive 空呆时间&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP/1.1 keepalive 连接在空闲状态下保持的最大时间。超过此时间未收到任何数据，Nginx 会主动关闭连接。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# keepalive 超时设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout 75s; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 75 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_requests 1000; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 单连接最大请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时时间的实际计算逻辑&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多个超时参数可能同时生效。Nginx 在各个阶段分别计时：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TCP 连接建立：proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体发送：proxy_send_timeout（从连接建立到请求体发送完成）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待响应头：proxy_read_timeout（从请求发送完成到收到响应头）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;读取响应体：proxy_read_timeout 继续累积（从收到响应头到响应体读取完成）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、实战步骤与常见排障路径&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 502 问题排查的黄金法则&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误的排查需要遵循系统化的步骤，从表象到根因逐层递进。下列步骤经过大量生产环境验证，可以快速定位绝大多数 502 问题。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步：确认是否真的是 502&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 curl -v 查看详细的 HTTP 交互过程，观察 502 是在哪个阶段发生的。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl -v http://api.example.com/api/v2/users 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* About to connect() to api.example.com port 80 (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-dmogyl&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;3e96&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#0&lt;/a&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* &amp;nbsp; Trying 203.0.113.10...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* Connected to api.example.com (203.0.113.10) port 80 (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-d7pa65&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;a201&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#0&lt;/a&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; GET /api/v2/users HTTP/1.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; User-Agent: curl/8.4.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; Host: api.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; Accept: */*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; HTTP/1.1 502 Bad Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; Server: nginx/1.26.2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; Date: Fri, 24 Apr 2026 08:00:12 GMT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; Content-Type: text/html&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; Content-Length: 157&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; Connection: keep-alive&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{ [data not shown]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* Connection&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-bd2fmw&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;7f01&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#0&lt;/a&gt;&amp;nbsp;to host api.example.com left intact&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* Closure expected&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从 curl 输出可以确认：TCP 连接成功建立（Connected），Nginx 返回了 502 状态码，Server 头显示 Nginx 版本为 1.26.2。这说明问题发生在 Nginx 与 upstream 之间。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步：检查 Nginx 错误日志&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx error.log 是定位 502 根因的第一手资料。配置&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;级别为 info 或 debug 可以获取更详细的调试信息，但需要注意日志量激增对磁盘和性能的影响。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时跟踪 error.log 中的 502 相关错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;(502|upstream|connect|timed out)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计最近 1000 条日志中各类错误的数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/\[error\]/ {count++} /502/ {502count++} /timed out/ {timeout++} /Connection refused/ {refused++} END {print &amp;quot;Total errors:&amp;quot;, count, &amp;quot;502 errors:&amp;quot;, 502count, &amp;quot;Timeouts:&amp;quot;, timeout, &amp;quot;Connection refused:&amp;quot;, refused}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total errors: 234 502 errors: 45 Timeouts: 12 Connection refused: 33&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看错误上下文（前后 5 行）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -C 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;502&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | head -100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计 502 错误的来源 IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/502/ &amp;amp;&amp;amp; /client: / {gsub(/,.*/, &amp;quot;&amp;quot;, $6); print $6}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | sort | uniq -c | sort -rn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;23 203.0.113.45&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;15 198.51.100.123&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 7 192.0.2.89&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# error.log 配置建议&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log warn; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生产环境使用 warn 级别，调试时使用 info&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 调试时临时开启 debug（仅限测试环境）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log debug;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# debug 日志量极大，务必在完成调试后恢复&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步：检查后端服务状态&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端服务未启动或异常是最常见的 502 根因。检查后端进程是否存活、端口/socket 是否监听、进程资源使用情况。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 PHP-FPM 进程状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl status php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;● php-fpm.service - PHP FastCGI Process Manager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: enabled)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Active: active (running) since Thu 2026-04-24 06:00:00 CST; 2h 15min ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;Main PID: 4521 (php-fpm)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Status:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;祥 system is running...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Tasks: 12 (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: 32768)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Memory: 245.6M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CGroup: /system.slice/php-fpm.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├─4521 php-fpm: master process (/etc/php-fpm.conf)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├─4522 php-fpm: pool www&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├─4523 php-fpm: pool www&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└─4524 php-fpm: pool www&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查监听端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ss -tlnp | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;:(80|443|8080|9000|php)&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;State &amp;nbsp; &amp;nbsp;Recv-Q &amp;nbsp; Send-Q &amp;nbsp; Local Address:Port &amp;nbsp; &amp;nbsp;Peer Address:Port &amp;nbsp; Process&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LISTEN &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;511 &amp;nbsp; &amp;nbsp; &amp;nbsp;127.0.0.1:9000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0.0.0:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; users:((&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;php-fpm&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=4522,fd=9),(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;php-fpm&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=4523,fd=9))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LISTEN &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;511 &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0.0.0:8080 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0.0.0:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; users:((&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;node&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=3421,fd=18))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LISTEN &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;511 &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0.0.0:80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0.0.0:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; users:((&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=12487,fd=6),(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=12488,fd=6))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果使用 Unix socket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ls -la /var/run/php-fpm/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;total 8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;srwxr-xr-x 3 root www-data www-data 120 Apr 24 06:00 /var/run/php-fpm/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;srwxrwxrwx 1 www-data www-data &amp;nbsp; 6 Apr 24 06:00 www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试 socket 连接性（使用 php-fpm 官方探活接口）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping REQUEST_METHOD=GET cgi-fcgi -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-connect /var/run/php-fpm/www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Content-type: text/plain&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;X-Powered-By: PHP 8.3.8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Status: 200 OK&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;X-Request-Id: abc123&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Free: 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MPool: enabled&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prober:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;builtin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Content-Length: 6&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OK&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查后端进程 CPU 和内存占用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ top -b -n 1 | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;top - 08:15:33 up 42 days, &amp;nbsp;3:22, &amp;nbsp;2 users, &amp;nbsp;load average: 3.45, 2.89, 2.76&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tasks: 287 total, &amp;nbsp; 5 running, 282 sleeping, &amp;nbsp; 0 stopped, &amp;nbsp; 0 zombie&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;%Cpu(s): 78.5 us, 12.3 sy, &amp;nbsp;0.0 ni, &amp;nbsp;9.2 id, &amp;nbsp;0.0 wa, &amp;nbsp;0.0 hi, &amp;nbsp;0.0 si, &amp;nbsp;0.0 st&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MiB Mem : &amp;nbsp;32768.0 total, &amp;nbsp; 4523.4 free, &amp;nbsp;18234.5 used, &amp;nbsp;10010.1 buff/cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MiB Swap: &amp;nbsp; 8192.0 total, &amp;nbsp; 8192.0 free, &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0 used. &amp;nbsp;11234.3 avail Mem&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; PID USER &amp;nbsp; &amp;nbsp; &amp;nbsp;PR &amp;nbsp;NI &amp;nbsp; &amp;nbsp;VIRT &amp;nbsp; &amp;nbsp;RES &amp;nbsp; &amp;nbsp;SHR S &amp;nbsp;%CPU &amp;nbsp;%MEM &amp;nbsp; &amp;nbsp; TIME+ COMMAND&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;4522 www-data &amp;nbsp;20 &amp;nbsp; 0 &amp;nbsp;523456 &amp;nbsp;28934 &amp;nbsp; 9212 S &amp;nbsp;45.2 &amp;nbsp; 0.1 &amp;nbsp;234:56 php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;4523 www-data &amp;nbsp;20 &amp;nbsp; 0 &amp;nbsp;512234 &amp;nbsp;24567 &amp;nbsp; 8734 S &amp;nbsp;38.7 &amp;nbsp; 0.1 &amp;nbsp;198:34 php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;3421 root &amp;nbsp; &amp;nbsp; &amp;nbsp;20 &amp;nbsp; 0 1245678 456123 &amp;nbsp;23456 S &amp;nbsp;12.3 &amp;nbsp; 1.4 &amp;nbsp; 56:78 node&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步：确认网络连通性&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排除物理网络层面的问题。即使 upstream 在本机，也需要验证端口可连接性。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# telnet 测试端口连通性（交互式命令，Ctrl+] 退出）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ telnet 127.0.0.1 8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Trying 127.0.0.1...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connected to 127.0.0.1.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Escape character is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;^]&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# nc 测试端口连通性（更现代的方式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nc -zv 127.0.0.1 8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connection to 127.0.0.1 8080 port [tcp/*] succeeded!&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nc -zv 127.0.0.1 9000 -w 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connection to 127.0.0.1 9000 port [tcp/*] succeeded!&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果是域名形式的 upstream，测试 DNS 解析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ dig +short api-backend.internal.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.0.1.55&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.0.1.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.0.1.57&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nslookup api-backend.internal.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试 TCP 握手时间（使用 httping）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ httping -g http://127.0.0.1:8080/health -c 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PING 127.0.0.1:8080 (to=127.0.0.1):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connected to 127.0.0.1:8080 (301 bytes), seq=0 time=00.35 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connected to 127.0.0.1:8080 (301 bytes), seq=1 time=00.31 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connected to 127.0.0.1:8080 (301 bytes), seq=2 time=00.28 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--- http://127.0.0.1:8080/ ping statistics ---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3 connects, 3 ok, 0.00% roundtrip loss, 0.0/3.0/0.3/0.4 ms min/avg/max&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# iptables/firewalld 规则检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ iptables -L -n | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;(DROP|REJECT)&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ firewall-cmd --list-all 2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五步：验证 upstream 配置是否正确&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 nginx.conf 中 upstream 块的配置，确保 IP 地址、端口、权重、备份服务器等参数正确。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试 Nginx 配置语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -t&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx: the configuration file /etc/nginx/nginx.conf syntax is ok&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx: configuration file /etc/nginx/nginx.conf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is successful&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 完整输出配置树（包含所有 include 文件）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -T 2&amp;gt;&amp;amp;1 | head -500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查特定 upstream 块的配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -T 2&amp;gt;&amp;amp;1 | grep -A 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^ &amp;nbsp; &amp;nbsp;upstream backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 日志深度解读&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx error.log 中记录的错误信息是诊断 502 问题最直接的证据。不同的错误信息对应不同的根因和处理方式。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;upstream prematurely closed connection&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表示 Nginx 与 upstream 之间的连接在 Nginx 读取完响应头之前就被 upstream 主动关闭。这通常意味着 upstream 进程崩溃、OOM 被杀、或遭遇了致命错误。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:15:32 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-vsu918&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;b045&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *8921 upstream prematurely closed connection while reading response header of upstream, client: 203.0.113.45, server: api.example.com, request: &amp;quot;GET /api/v2/users HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/v2/users&amp;quot;, upstream_connection: &amp;quot;9612&amp;quot;, upstream_bytes_sent: 234, upstream_bytes_received: 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;关键字段解读：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream prematurely closed connection&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：根因，upstream 提前关闭了连接&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream_connection: &amp;quot;9612&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Nginx 侧连接的标识符，可用于关联同一连接的多次请求&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream_bytes_sent: 234&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：已发送给 upstream 的字节数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream_bytes_received: 0&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：从 upstream 收到的字节数，说明 upstream 尚未返回任何数据就被关闭了&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 upstream 服务（后端应用）的错误日志，寻找崩溃或 panic 的记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查系统日志（dmesg、/var/log/messages）是否有关于 OOM Killer 的记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认后端服务是否因为代码 bug、资源耗尽而崩溃&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 dmesg 中的 OOM Killer 记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ dmesg -T | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;oom\|killed process&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Thu Apr 24 08:15:00 2026] php-fpm[4522]: oom_reaper: reaped process 4522 (php-fpm), now anon-rss: 0kb, file-rss: 0kb&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 /var/log/messages 中的相关记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;oom\|kill\|php-fpm&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/messages | tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;connect() failed (111: Connection refused)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 尝试连接 upstream 时，目标端口无进程监听。这是配置错误或后端服务未启动的明确信号。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 09:22:18 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-4t7n0y&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;b88d&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *9234 connect() failed (111: Connection refused) while connecting to upstream, client: 198.51.100.23, server: www.example.com, request: &amp;quot;POST /api/orders HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:9000/api/orders&amp;quot;, upstream_connection: &amp;quot;128&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;关键字段解读：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connect() failed&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：连接建立失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(111: Connection refused)&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：系统级 errno，111 = ECONNREFUSED，表示目标地址有响应但端口未监听（对比 ENETUNREACH = Network unreachable）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认 upstream 服务进程是否运行：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status php-fpm&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tlnp&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认 upstream 配置的 IP:端口是否正确&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是 Unix socket，确认 socket 文件是否存在且权限正确&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模拟 Nginx 的连接行为&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ strace -e trace=connect -s 200 nginx -s reload 2&amp;gt;&amp;amp;1 | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;connection refused&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者对已知的后端端口抓包&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ tcpdump -i lo port 9000 -nn 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;no live upstreams while connecting&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有 upstream server 都不可用，Nginx 找不到可用的后端节点。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 10:45:07 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-ezcvnx&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;b9f1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *10234 no live upstreams while connecting to upstream, client: 203.0.113.89, server: api.example.com, request: &amp;quot;GET /api/health HTTP/1.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 upstream 块中所有 server 的健康状态&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可能是所有 server 都触发了 max_fails 阈值被暂时禁用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 Nginx 配置中是否有语法错误导致 upstream 块无效&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 upstream 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -T 2&amp;gt;&amp;amp;1 | grep -A 15&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream backend&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查所有 upstream server 是否都被标记为 down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 error.log 中搜索 upstream server 状态变化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream.*server.*down\|upstream.*server.*disabled&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:00:12 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-bhtwbc&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;44e0&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *234 upstream server 127.0.0.1:8080 is marked as down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:00:15 [warn] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-p11pgf&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;50d7&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *235 upstream server 127.0.0.1:8081 is marked as down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;upstream timed out (110: Connection timed out)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与 upstream 的连接建立成功，但在 proxy_read_timeout 规定的时间内未收到响应，Nginx 主动关闭连接。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型日志 - 响应头超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 11:02:33 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-hse7gn&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;12a9&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *10891 upstream timed out (110: Connection timed out) after 30000 ms (110: Connection timed out) while connecting to upstream, client: 198.51.100.67, server: www.example.com, request: &amp;quot;POST /api/upload HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:9090/api/upload&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型日志 - 读取响应超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 12:15:44 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-1965l7&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;ad5c&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *11567 upstream timed out (110: Connection timed out) while reading response header of upstream, client: 203.0.113.112, server: api.example.com, request: &amp;quot;GET /api/reports HTTP/1.1&amp;quot;, upstream: &amp;quot;http://127.0.0.1:8080/api/reports&amp;quot;, upstream_connection: &amp;quot;15623&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查后端服务的处理时间（数据库查询、文件 I/O、第三方 API 调用）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认 proxy_read_timeout 设置是否合理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用后端应用自身的慢查询日志定位瓶颈&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# PHP-FPM 慢查询日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;slow&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/php-fpm/www-slow.log | tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24-Apr-2026 11:00:12] &amp;nbsp;[pool www] pid 5534&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;script: /var/www/html/api/report.php&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;call: mysqli_query&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;time: 45.234567 s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory: 128.00M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Node.js 慢日志（使用 --inspect 配合 APM 工具）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ journalctl -u node-backend --since&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2026-04-24 11:00:00&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;slow\|timeout&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;access.log 的 502 占比统计&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过分析 access.log 中各类状态码的分布，可以量化 502 错误的严重程度和变化趋势。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计 access.log 中各状态码的数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{code[$9]++} END {for (c in code) print c, code[c]}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort -k2 -rn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;200 1289345&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 4523&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;499 1234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;304 890&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;404 567&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500 234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;503 89&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 计算 502 错误率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ total=$(wc -l &amp;lt; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log); errors502=$(grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; 502 &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;scale=4;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$errors502&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$total&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;* 100&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| bc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0.3489%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 按时间段统计 502 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$4 ~ /\[24\/Apr\/2026:1[0-2]/ &amp;amp;&amp;amp; $9 == 502 {hour[$4]++} END {for (h in hour) print h, hour[h]}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24/Apr/2026:10:00:00 +0800] 23&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24/Apr/2026:11:00:00 +0800] 45&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24/Apr/2026:12:00:00 +0800] 12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计产生 502 错误最多的请求路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$9 == 502 {path[$7]++} END {for (p in path) print path[p], p}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;234 /api/v2/users&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;189 /api/orders/submit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;123 /api/reports/generate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;67 /api/payments/callback&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志级别配置与影响&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 日志级别从低到高：debug、info、notice、warn、error、crit、alert、emerg。生产环境建议使用 warn 或 error 级别，避免 debug 级别产生过大的日志量。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志级别说明&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;debug: 调试信息，仅在编译时 --with-debug 启用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;info: &amp;nbsp;一般信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;notice: 需要注意的信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;warn: &amp;nbsp;警告信息，可能存在问题但不影响运行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error: 错误信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crit: &amp;nbsp;严重错误，部分功能不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;alert: 必须立即处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;emerg: 系统不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时开启 debug（测试环境）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log debug;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# debug 级别的连接追踪&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; debug_connection 203.0.113.0/24; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 仅对特定 IP 开启 debug&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; debug_connection 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分布式 trace：request_id 串联日志&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在多层代理架构中，单个请求可能经过多个 Nginx 节点。使用 request_id 将各层日志串联起来，可以实现端到端的请求追踪。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Nginx 自动生成 $request_id（1.11.0+）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 格式：16 字节的十六进制随机数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在请求头中传递 request_id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header X-Request-ID&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$request_id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 PHP 中获取 request_id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$requestId&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$_SERVER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;HTTP_X_REQUEST_ID&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;] ??&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 Node.js 中获取 request_id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;const requestId = req.headers[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;x-request-id&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;];&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查询串联后的日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;X-Request-Id: abc12345&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:15:32 [error] 12487&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-fqbxfk&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;3d7b&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#12487&lt;/a&gt;: *8921 upstream prematurely closed connection..., request_id: &amp;quot;abc12345&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026/04/24 08:15:33 [error] 4522&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mocp2iwk-0ysdix&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;fca8&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#4522&lt;/a&gt;: *8921 php-fpm: pool www: child exited..., request_id: &amp;quot;abc12345&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;abc12345&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/php-fpm/www-error.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24-Apr-2026 08:15:32 UTC] PHP Fatal error: Allowed memory size of 128M exhausted&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/www/html/api/v2/users.php on line 234, request_id: abc12345&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 常见场景的排障路径&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景一：PHP-FPM 进程全挂&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 是最常见的后端服务之一，PHP-FPM 进程异常退出是导致 502 的高频原因。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error.log 大量&amp;quot;connect() failed (111: Connection refused) while connecting to upstream&amp;quot;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 指向 php-fpm socket 或端口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl 测试直接连接后端也失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 PHP-FPM 服务状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl status php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;● php-fpm.service - PHP FastCGI Process Manager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: enabled)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Active: inactive (dead) since Thu 2026-04-24 08:00:12 CST; 2h 15min ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Main PID: 4521 (code=exited, status=0/SUCCESS)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 PHP-FPM 主进程退出原因&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ journalctl -u php-fpm --since&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2026-04-24 08:00:00&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--until&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2026-04-24 08:05:00&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Apr 24 08:00:12 web01 systemd[1]: php-fpm.service: Main process exited, code=killed, status=9/KILL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Apr 24 08:00:12 web01 systemd[1]: php-fpm.service: Failed with result&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;signal&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查 dmesg 中是否有 OOM Killer 记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ dmesg -T | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;php|oom|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Thu Apr 24 08:00:11 2026] php-fpm[4522]: memory usage 256MB exceeds&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;256MB, terminated&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Thu Apr 24 08:00:11 2026] Out of memory: Killed process 4522 total-vm:512MB, anon-rss:256MB file-rss:0KB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查 PHP-FPM 配置中的进程管理参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^pm|^proces|child|memory&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/php-fpm/www.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm = dynamic&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_children = 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.start_servers = 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.min_spare_servers = 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_spare_servers = 20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_requests = 500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;emergency_restart_threshold = 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;emergency_restart_interval = 1m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;process_control_timeout = 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;php_admin_value[memory_limit] = 256M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 PHP-FPM 错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cat /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/php-fpm/www-error.log | tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24-Apr-2026 08:00:10 UTC] PHP Fatal error: &amp;nbsp;Allowed memory size of 268435456 bytes exhausted (tried to allocate 16384 bytes)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/www/html/api/v2/users.php on line 145&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[24-Apr-2026 08:00:11 UTC] PHP Fatal error: &amp;nbsp;Allowed memory size of 268435456 bytes exhausted (tried to allocate 32768 bytes)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/www/html/api/v2/users.php on line 234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时恢复服务：重启 PHP-FPM&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl status php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;● php-fpm.service - PHP FastCGI Process Manager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: enabled)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Active: active (running) since Thu 2026-04-24 10:20:00 CST; 5s ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长期优化：根据 OOM 日志定位内存消耗最大的 PHP 脚本，优化代码或上调 memory_limit&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时调高 memory_limit（不推荐作为长期方案）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/php_admin_value\[memory_limit\] = 256M/php_admin_value[memory_limit] = 512M/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/php-fpm/www.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优化 pm.max_children（根据可用内存计算）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 公式：max_children = (总内存 - 操作系统预留 - 其他服务内存) / 单个 PHP 进程内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 假设服务器 32G 内存，OS 预留 4G，MySQL 占用 8G，单个 PHP 进程平均 64M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# max_children = (32 - 4 - 8) * 1024 / 64 = 320&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因预防&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置 PHP-FPM emergency_restart_threshold，当进程在规定时间内异常退出次数超过阈值时自动重启&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置 OOM Score Adj，使 PHP-FPM 进程更容易被 OOM Killer 先选中&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 PHP 内存分析工具（xdebug、memprof）定位内存泄漏&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景二：Node.js/Python 后端 CPU 跑满&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端服务 CPU 跑满时，请求处理速度急剧下降，Nginx 等待后端响应超时，最终导致 502。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error.log 出现&amp;quot;upstream timed out&amp;quot;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误持续出现，但后端进程仍在运行&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统 load average 显著升高&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 CPU 使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ top -b -n 1 -p $(pgrep -d&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;node)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;top - 08:30:15 up 42 days, &amp;nbsp;3:37, &amp;nbsp;2 users, &amp;nbsp;load average: 8.45, 6.89, 5.76&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tasks: &amp;nbsp;12 total, &amp;nbsp; 9 running, &amp;nbsp; 3 sleeping, &amp;nbsp; 0 stopped, &amp;nbsp; 0 zombie&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;%Cpu(s): 95.5 us, &amp;nbsp;3.2 sy, &amp;nbsp;0.0 ni, &amp;nbsp;1.3 id, &amp;nbsp;0.0 wa, &amp;nbsp;0.0 hi, &amp;nbsp;0.0 si, &amp;nbsp;0.0 st&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; PID USER &amp;nbsp; &amp;nbsp; &amp;nbsp;PR &amp;nbsp;NI &amp;nbsp; &amp;nbsp;VIRT &amp;nbsp; &amp;nbsp;RES &amp;nbsp; &amp;nbsp;SHR S &amp;nbsp;%CPU &amp;nbsp;%MEM &amp;nbsp; &amp;nbsp; TIME+ &amp;nbsp; &amp;nbsp;COMMAND&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;3421 root &amp;nbsp; &amp;nbsp; &amp;nbsp;20 &amp;nbsp; 0 1245678 456123 &amp;nbsp;23456 R &amp;nbsp;78.5 &amp;nbsp; 1.4 &amp;nbsp; 2345:56 node&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;3422 root &amp;nbsp; &amp;nbsp; &amp;nbsp;20 &amp;nbsp; 0 &amp;nbsp;234567 &amp;nbsp;123456 &amp;nbsp; 8901 R &amp;nbsp;15.2 &amp;nbsp; 0.4 &amp;nbsp; &amp;nbsp;456:34 node&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;3423 root &amp;nbsp; &amp;nbsp; &amp;nbsp;20 &amp;nbsp; 0 &amp;nbsp;212345 &amp;nbsp;112234 &amp;nbsp; 7802 R &amp;nbsp; 1.2 &amp;nbsp; 0.3 &amp;nbsp; &amp;nbsp;123:45 node&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Node.js 进程的请求队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl -s http://127.0.0.1:8080/metrics | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nodejs_active_requests|eventloop_lag&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HELP nodejs_active_requests Number of active requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TYPE nodejs_active_requests gauge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodejs_active_requests 150&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HELP nodejs_eventloop_lag Lag in the Node.js event loop in milliseconds&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TYPE nodejs_eventloop_lag gauge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nodejs_eventloop_lag 5234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 分析 Node.js 慢日志（如果有）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cat /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/node-backend/slow.log | tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[SLOW] 2026-04-24T08:25:12.234Z - 5034ms - /api/v2/report - Database query slow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[SLOW] 2026-04-24T08:25:15.567Z - 6123ms - /api/v2/report - Memory allocation high&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. Python (Gunicorn) 场景：检查 worker 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ps aux | grep gunicorn | grep -v grep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;root &amp;nbsp; &amp;nbsp; &amp;nbsp;5621 &amp;nbsp;0.0 &amp;nbsp;2.1 245678 &amp;nbsp;456789 &amp;nbsp;? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;S &amp;nbsp; &amp;nbsp;Apr23 &amp;nbsp; 0:30 gunicorn: master [app]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;www-data &amp;nbsp;5622 95.0 &amp;nbsp;3.2 267890 &amp;nbsp;567890 &amp;nbsp;? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;R &amp;nbsp; &amp;nbsp;Apr24 &amp;nbsp; 234:56 gunicorn: worker [/var/www/app]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;www-data &amp;nbsp;5623 92.0 &amp;nbsp;3.1 259876 &amp;nbsp;543210 &amp;nbsp;? &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;R &amp;nbsp; &amp;nbsp;Apr24 &amp;nbsp; 198:34 gunicorn: worker [/var/www/app]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl http://127.0.0.1:8000/syncdict &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gunicorn 同步模式下单个请求阻塞整个 worker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;快速止血：增加 worker 进程数量或切换到异步模式&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Node.js: 临时增加 cluster worker 数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 编辑 app.js，将 worker 数量从 4 增加到 8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/workers: 4/workers: 8/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/node-backend/config.js&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart node-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Python: 增加 Gunicorn worker 数量，使用异步 worker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/workers=4/workers=8/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/gunicorn/config.py&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/worker-class=sync/worker-class=uvicorn.workers.UvicornWorker/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/gunicorn/config.py&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart gunicorn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定位瓶颈：使用 profiler 找到 CPU 热点代码&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Node.js: 使用 --prof 生成 V8 profiling 数据&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-USR2 $(pgrep node) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 触发 profiling&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sleep 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-USR2 $(pgrep node) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止 profiling&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ node --prof-process isolate-*.&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优化超时配置：根据后端处理能力调整 Nginx 超时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# upstream 块中添加合理的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 16;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 根据后端处理能力调整超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景三：数据库连接池耗尽&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端服务依赖数据库，当数据库连接池耗尽时，后端请求在等待数据库连接时阻塞，间接导致 Nginx 侧超时。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误呈现周期性（如每 30 分钟出现一次高峰）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端应用日志中大量&amp;quot;connection timeout&amp;quot;或&amp;quot;pool exhausted&amp;quot;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据库服务器 CPU/内存正常，但连接数达到上限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 MySQL 连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ mysql -e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SHOW PROCESSLIST;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;145&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ mysql -e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SHOW PROCESSLIST;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Sleep|Query&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+----+------+-----------+--------------------+---------+------+----------+-----------------------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| Id | User | Host &amp;nbsp; &amp;nbsp; &amp;nbsp;| db &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Command | Time | State &amp;nbsp; &amp;nbsp;| Info &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+----+------+-----------+--------------------+---------+------+----------+-----------------------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| &amp;nbsp;1 | root | localhost | information_schema | Query &amp;nbsp; | &amp;nbsp; &amp;nbsp;0 | starting | SHOW PROCESSLIST &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| 45 | app &amp;nbsp;| web01:456 | myapp_production &amp;nbsp; | Sleep &amp;nbsp; | &amp;nbsp;892 | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| 46 | app &amp;nbsp;| web01:457 | myapp_production &amp;nbsp; | Sleep &amp;nbsp; | &amp;nbsp;891 | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| 47 | app &amp;nbsp;| web01:458 | myapp_production &amp;nbsp; | Sleep &amp;nbsp; | &amp;nbsp;890 | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| 48 | app &amp;nbsp;| web02:123 | myapp_production &amp;nbsp; | Sleep &amp;nbsp; | &amp;nbsp;892 | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+----+------+-----------+--------------------+---------+------+----------+-----------------------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 MySQL 最大连接数配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ mysql -e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SHOW VARIABLES LIKE &amp;#39;max_connections&amp;#39;;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+-----------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| Variable_name &amp;nbsp; | Value |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+-----------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| max_connections | 151 &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+-----------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查 PHP/Python 应用的数据库连接池配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;max_connections|pool_size|connection_pool&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/www/html/config/database.php&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$connPool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;= new PDO(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$dsn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$user&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$pass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; PDO::ATTR_POOL =&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; PDO::ATTR_POOL_SIZE =&amp;gt; 20,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]);&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查慢查询日志（长时间运行的 Query 会占用连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ mysql -e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SHOW GLOBAL STATUS LIKE &amp;#39;Slow_queries&amp;#39;;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+---------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| Variable_name | Value |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+---------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;| Slow_queries &amp;nbsp;| 1234 &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;+---------------+-------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cat /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/mysql/slow-query.log | head -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据库端优化：增加 max_connections，调优 wait_timeout&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;-- 临时增加连接数上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;SET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;GLOBAL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;max_connections =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;-- 检查并调优 wait_timeout（避免 Sleep 连接长期占用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;SHOW&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;GLOBAL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;VARIABLES&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;LIKE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;wait_timeout&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;SET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;GLOBAL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;wait_timeout =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;600&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;SET&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;GLOBAL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;interactive_timeout =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;600&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用端优化：使用连接池管理，设置连接超时，快速失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;// PHP: 使用 Doctrine DBAL 连接池，设置短超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$config =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;new&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\Doctrine\DBAL\Configuration();&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$config-&amp;gt;setDriverChain([&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;adapter&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;pdo_mysql&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]);&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$connection = \Doctrine\DBAL\ManagerRegistry::getConnection([&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;driver&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;pdo_mysql&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;host&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;10.0.1.100&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;dbname&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;myapp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;app&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;password&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;xxx&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;options&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;=&amp;gt; [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PDO::ATTR_TIMEOUT =&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;// 5 秒超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PDO::ATTR_ERRMODE =&amp;gt; PDO::ERRMODE_EXCEPTION,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]);&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 端配置：使用短超时和快速失败，避免请求堆积&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 3s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 后端处理过慢时立即返回 502，不累积请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_next_upstream error timeout http_502;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景四：Socket 文件权限问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 使用 Unix Domain Socket 与 Nginx 通信时，socket 文件的权限和所有权必须正确配置，否则 Nginx 无法连接 PHP-FPM。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error.log 中出现&amp;quot;connect() to unix:/var/run/php-fpm/www.sock failed (13: Permission denied)&amp;quot;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 进程正常运行，但 Nginx 返回 502&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;直接测试 socket 连通性失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 socket 文件权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ls -la /var/run/php-fpm/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;total 8&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;srwxr-xr-x 3 root www-data www-data 120 Apr 24 06:00 /var/run/php-fpm/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;srwxrwxrwx 1 www-data www-data &amp;nbsp; 6 Apr 24 06:00 www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Nginx worker 进程的用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ps aux | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx: worker&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| head -3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;root &amp;nbsp; &amp;nbsp; 12487 &amp;nbsp;0.0 &amp;nbsp;0.3 &amp;nbsp;56789 &amp;nbsp;23456 &amp;nbsp;? &amp;nbsp;S &amp;nbsp; &amp;nbsp;Apr23 &amp;nbsp; 0:12 nginx: worker process&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;root &amp;nbsp; &amp;nbsp; 12488 &amp;nbsp;0.0 &amp;nbsp;0.3 &amp;nbsp;56790 &amp;nbsp;23457 &amp;nbsp;? &amp;nbsp;S &amp;nbsp; &amp;nbsp;Apr23 &amp;nbsp; 0:11 nginx: worker process&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# nginx.conf 中 user 指令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^user&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查 PHP-FPM pool 配置中的 listen.owner 和 listen.group&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^listen\.|listen\.owner|listen\.group|listen\.mode&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/php-fpm/www.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen = /var/run/php-fpm/www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.owner = www-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.group = www-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.mode = 0660&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试 socket 连接性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sudo -u nginx php-fpm-test-connection /var/run/php-fpm/www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或使用 ss 查看 socket 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ss -x | grep php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;u_str LISTEN 0 511 /var/run/php-fpm/www.sock 12345 users:((&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;php-fpm&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,pid=4522,fd=9))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SELinux/AppArmor 拦截检查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 SELinux 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ getenforce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Enforcing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 SELinux 阻止的访问&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ grep nginx /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/audit/audit.log | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;denied\|refused&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;=AVC msg=audit(1713936000.234:5678): avc: &amp;nbsp;denied &amp;nbsp;{ connectto }&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; pid=12487 comm=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;path=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/run/php-fpm/www.sock&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:php-fpm_t:s0 tclass=unix_stream_socket permissive=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时解决：设置 SELinux 允许 nginx 连接 php-fpm socket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ setsebool -P httpd_can_network_connect 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 永久解决：添加 SELinux 策略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cat &amp;gt; /etc/selinux/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_php_fpm.te &amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;module nginx_php_fpm 1.0;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;require {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;httpd_t;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;php-fpm_t;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; class unix_stream_socket connectto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;allow httpd_t php-fpm_t:unix_stream_socket connectto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ checkmodule -M -m -o nginx_php_fpm.mod nginx_php_fpm.te&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ semodule_package -o nginx_php_fpm.pp -m nginx_php_fpm.mod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ semodule -i nginx_php_fpm.pp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;统一用户和组&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案一：让 Nginx 和 PHP-FPM 使用相同的用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/php-fpm/www.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.owner = nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.group = nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.mode = 0660&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案二：使用 TCP 连接而非 Unix socket&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/php-fpm/www.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen = 127.0.0.1:9000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location ~ \.php$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; fastcgi_pass 127.0.0.1:9000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修复 socket 权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ chown www-data:www-data /var/run/php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ chmod 0775 /var/run/php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景五：反代到 Docker 容器&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 容器的网络模式、容器健康状态、容器重启策略等都会影响 Nginx 对容器的代理行为。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 指向 Docker 容器 IP 或映射端口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误在容器重启后突然出现&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker ps 显示容器状态不稳定&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查容器状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ docker ps -a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONTAINER ID &amp;nbsp; IMAGE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; STATUS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PORTS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NAMES&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;abc123def456 &amp;nbsp; myapp:latest &amp;nbsp; &amp;nbsp;Up 2 hours &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0.0.0:8080-&amp;gt;8080/tcp web01&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def456ghi789 &amp;nbsp; myapp:latest &amp;nbsp; &amp;nbsp;Restarting &amp;nbsp; &amp;nbsp; &amp;nbsp;0.0.0.0:8081-&amp;gt;8080/tcp web02&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ghi789jkl012 &amp;nbsp; myapp:latest &amp;nbsp; &amp;nbsp;Exited (1) 5m &amp;nbsp; 0.0.0.0:8082-&amp;gt;8080/tcp web03&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查容器日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ docker logs def456ghi789 --tail 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[2026-04-24 08:00:00] INFO: Starting server on port 8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[2026-04-24 08:00:01] ERROR: Database connection failed: connection timeout&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[2026-04-24 08:00:01] INFO: Retrying&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;5 seconds...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[2026-04-24 08:00:06] ERROR: Database connection failed: connection timeout&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[2026-04-24 08:00:06] FATAL: Could not connect to database after 5 attempts, exiting&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查 Docker 网络模式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ docker inspect def456ghi789 | grep -A 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NetworkSettings&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NetworkSettings&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Bridge&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SandboxID&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;xyz123&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Gateway&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;172.17.0.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;IPAddress&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;172.17.0.8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Ports&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8080/tcp&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;HostIp&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.0.0.0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;HostPort&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8081&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试容器网络连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ docker&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it abc123def456 ping -c 3 db.internal.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PING db.internal.example.com (10.0.1.100) 56(84) bytes of data.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;64 bytes from db.internal.example.com (10.0.1.100): icmp_seq=1 ttl=63 time=0.5 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ docker&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it abc123def456 curl -v http://localhost:8080/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* Connected to localhost:8080 (127.0.0.1) port 8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; HTTP/1.1 200 OK&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 Docker daemon 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ journalctl -u docker --since&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;2026-04-24 08:00:00&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 Docker Compose 健康检查和 depends_on 确保启动顺序&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# docker-compose.yml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;version:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;services:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;db:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;mysql:8.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;healthcheck:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;test:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;CMD&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;mysqladmin&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ping&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-h&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;retries:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;app:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;myapp:latest&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;depends_on:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;db:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;condition:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;service_healthy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;healthcheck:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;test:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;quot;CMD&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;curl&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:8080/health&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;interval:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;15s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeout:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;retries:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;restart:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;on-failure&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 Nginx upstream 中使用容器名称（Docker Compose 网络内）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web01:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web02:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web03:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; resolver 127.0.0.11 valid=10s; &amp;nbsp;# Docker 内置 DNS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置 Nginx upstream 主动健康检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web01:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web02:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server web03:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check interval=5000 rise=2 fall=3 timeout=3000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 配置优化实战&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时参数调优&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时配置是 502 问题的核心配置项。根据业务特点合理设置超时，可以在保护后端和保证可用性之间取得平衡。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 生产环境推荐的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout 10s; &amp;nbsp; # 连接超时，短即可&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_send_timeout 60s; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 发送请求超时，根据请求体大小调整&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 120s; &amp;nbsp; &amp;nbsp; # 读取响应超时，根据业务处理时间调整&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 上传/下载大文件的场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size 500m; &amp;nbsp; # 允许最大请求体 500M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout 600s; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 大文件处理需要更长超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API 服务的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 启用请求缓冲，用于大请求体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_request_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffer_size 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证超时配置生效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -T 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;proxy_(connect|send|read)_timeout&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 120s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 通过压力测试验证超时行为&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ab -n 100 -c 10 -s 30 http://api.example.com/api/v2/report&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 观察是否会因为超时导致 502&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓冲区优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓冲区配置直接影响 Nginx 转发大量数据时的效率。配置不当可能导致内存占用过高或频繁写入临时文件。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 大流量站点推荐缓冲区配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size 256k; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 响应头缓冲区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers 16 256k; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 响应体缓冲区，16 * 256k = 4M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_busy_buffer_size 512k; &amp;nbsp;# 忙碌时缓冲区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 临时文件配置（用于超过内存缓冲区的响应）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_max_temp_file_size 2048m; &amp;nbsp;# 临时文件总大小上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_temp_file_write_size 256k; # 单次写入大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 静态文件代理（减少后端压力）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /static/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend_static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_valid 200 60m; &amp;nbsp;# 缓存 200 响应 60 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控缓冲区使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ watch -n 1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;cat /proc/$(pgrep nginx | head -1)/status | grep -E &amp;quot;VmPeak|VmSize|Rss&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Every 1.0s: cat /proc/12487/status | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;VmPeak|VmSize|Rss&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;VmPeak: &amp;nbsp;524288 kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;VmSize: &amp;nbsp;498234 kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Rss: &amp;nbsp; &amp;nbsp; 123456 kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查是否有大量临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ls -lah /var/lib/nginx/proxy/ | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;23&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ du -sh /var/lib/nginx/proxy/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.2G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Keepalive 配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP keepalive 可以复用 TCP 连接，显著减少连接建立的开销。在高并发场景中，合理配置 upstream keepalive 是保护后端的重要手段。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# upstream keepalive 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 weight=3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8082 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 保持 32 个空闲连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000; &amp;nbsp; # 单连接最大请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 空闲连接超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# location 中启用 HTTP/1.1 和清除 Connection 头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 必须使用 HTTP/1.1 才能支持 keepalive&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 清除 Connection 头，否则 nginx 会保持短连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 可选：添加存活探测&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 对比有无 keepalive 的性能差异&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 无 keepalive&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ wrk -t4 -c100 -d30s http://127.0.0.1/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Requests/sec: &amp;nbsp;1234.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Latency avg: &amp;nbsp; 45.67ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 有 keepalive（32 连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ wrk -t4 -c100 -d30s http://127.0.0.1/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Requests/sec: &amp;nbsp;4567.89&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Latency avg: &amp;nbsp; 12.34ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 性能提升约 3.7 倍&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 预防性监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 错误率告警&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控 502 错误率，超过阈值则告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/log/nginx/access.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;THRESHOLD=1.0 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 阈值 1%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;calculate_502_rate&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; total=$(wc -l &amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; errors502=$(grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; 502 &amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$total&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-eq 0 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rate=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;scale=4;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$errors502&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$total&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;* 100&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| bc)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$rate&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate=$(calculate_502_rate)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;result=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$rate&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$THRESHOLD&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| bc)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$result&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-eq 1 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;CRITICAL: 502 error rate is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${rate}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;%, threshold is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${THRESHOLD}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;%&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 触发告警（对接 Prometheus Alertmanager / Grafana / PagerDuty 等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; curl -X POST&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://alertmanager:9093/api/v1/alerts&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;[{&amp;quot;labels&amp;quot;:{&amp;quot;alertname&amp;quot;:&amp;quot;Nginx502High&amp;quot;,&amp;quot;severity&amp;quot;:&amp;quot;critical&amp;quot;}}]&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus + Grafana 监控配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# prometheus.yml - scrape 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;scrape_configs:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;job_name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;nginx&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;static_configs:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;targets:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;[&amp;#39;127.0.0.1:9100&amp;#39;]&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# nginx-vts 或 nginx-exporter&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Grafana 查询 - 502 错误率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Nginx upstream response time (5xx)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(nginx_upstream_response_seconds_count{upstream=~&amp;quot;.*&amp;quot;,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;status=~&amp;quot;5..&amp;quot;}[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(upstream)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Nginx upstream request errors&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(nginx_upstream_request_errors_total[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(upstream)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Nginx connection status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_total{status=&amp;quot;active&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_total{status=&amp;quot;reading&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_total{status=&amp;quot;writing&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_total{status=&amp;quot;waiting&amp;quot;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 响应时间分布&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 awk 分析 access.log 中 upstream 响应时间分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk -F&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;#39;$2 ~ /upstream/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; split($2, parts, &amp;quot; &amp;quot;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; for (i=1; i&amp;lt;=length(parts); i++) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (parts[i] ~ /upstream_response_time/) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; split(parts[i], kv, &amp;quot;:&amp;quot;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time = kv[3] + 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (time &amp;lt; 0.1) bucket[&amp;quot;&amp;lt;100ms&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (time &amp;lt; 0.5) bucket[&amp;quot;100-500ms&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (time &amp;lt; 1) bucket[&amp;quot;500ms-1s&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (time &amp;lt; 5) bucket[&amp;quot;1-5s&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (time &amp;lt; 30) bucket[&amp;quot;5-30s&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else bucket[&amp;quot;&amp;gt;30s&amp;quot;]++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; total++&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;END {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; for (b in bucket) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pct = int(bucket[b] / total * 100)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf &amp;quot;%s: %d (%d%%)\n&amp;quot;, b, bucket[b], pct&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt;100ms: 12345 (45%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100-500ms: 9876 (36%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500ms-1s: 2345 (9%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1-5s: 1234 (5%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5-30s: 567 (2%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt;30s: 33 (1%)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、生产环境最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 架构优化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多层 Nginx 架构&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在大型生产环境中，建议部署两层 Nginx：边缘代理层（Edge Proxy）和应用代理层（Application Proxy）。边缘代理负责 SSL 终结、请求日志、基础安全过滤、静态资源缓存；应用代理负责业务路由、upstream 健康检查、负载均衡、故障转移。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Internet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Edge Proxy (NLB)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.1.1.1 / 1.1.1.2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SSL Termination&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Static Cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Rate Limiting&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Application Proxy Cluster&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10.0.1.10 / 10.0.1.11 / 10.0.1.12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Upstream Health Check&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Load Balancing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Business Routing&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Backend Services&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +------------+------------+&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PHP-FPM &amp;nbsp; &amp;nbsp; &amp;nbsp;Node.js &amp;nbsp; &amp;nbsp; &amp;nbsp;Python&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Database &amp;nbsp; &amp;nbsp;Redis &amp;nbsp; &amp;nbsp; &amp;nbsp; PostgreSQL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 边缘代理层配置 - /etc/nginx/edge.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 处理 SSL 终结和静态资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl http2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_protocols TLSv1.2 TLSv1.3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_prefer_server_ciphers on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_session_cache shared:SSL:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_session_timeout 1d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 静态资源缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /static/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://cdn_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 动态请求转发到应用代理层&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://app_proxy_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 限流配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=api_limit burst=100 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 应用代理层配置 - /etc/nginx/app.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 负责 upstream 健康检查和负载均衡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_php {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.20:9000 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:9000 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:9000 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 主动健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=2 timeout=1000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_node {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ip_hash;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.30:8080 weight=3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.31:8080 weight=3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.32:8080 weight=3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_php;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/proxy_params.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/node/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_node;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/proxy_params.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主动健康检查配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 nginx_upstream_check_module 实现主动健康检查，比被动检查更早发现故障节点，避免将请求发往已故障的后端。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 加载模块（编译时添加）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# ./configure --add-module=/path/to/nginx_upstream_check_module&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8082 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 主动健康检查配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # interval: 检查间隔 3 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # rise: 连续 2 次成功则标记为 up&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # fall: 连续 3 次失败则标记为 down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # timeout: 检查超时 1 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # type: 检查类型为 HTTP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=3 timeout=1000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 发送的 HTTP 请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 期望的响应状态码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx http_3xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 健康检查状态页面&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name localhost;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /upstream_status {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; check_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 200 &amp;quot;OK&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Content-Type text/plain;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证健康检查状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl http://127.0.0.1:8080/upstream_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Upstream server status:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server 127.0.0.1:8080 &amp;nbsp; &amp;nbsp; &amp;nbsp;up &amp;nbsp; &amp;nbsp; &amp;nbsp;1234567890 ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server 127.0.0.1:8081 &amp;nbsp; &amp;nbsp; &amp;nbsp;down &amp;nbsp; &amp;nbsp;5000 ms (3/3)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; server 127.0.0.1:8082 &amp;nbsp; &amp;nbsp; &amp;nbsp;backup&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total connections: 2345&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream alive connections: 1234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;灰度发布与权重调整&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在升级后端服务时，使用 Nginx 的权重调整实现流量切换，而非直接替换。新版本接收小部分流量，观察无异常后逐步增加权重。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 金丝雀发布配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_stable {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080; &amp;nbsp;# 当前稳定版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_canary {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081; &amp;nbsp;# 新版本，权重为 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 90% 流量到稳定版，10% 到金丝雀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080 weight=9;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 或者根据请求特征（如 Cookie、Header）分流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $cookie_canary_version $backend_pool {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default http://backend_stable;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;v2&amp;quot; http://backend_canary;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass $backend_pool;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/proxy_params.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控金丝雀版本的错误率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$9 ~ /5../ &amp;amp;&amp;amp; /127.0.0.1:8081/ {count++} END {print &amp;quot;Canary 5xx:&amp;quot;, count}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Canary 5xx: 12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$9 ~ /5../ &amp;amp;&amp;amp; /127.0.0.1:8080/ {count++} END {print &amp;quot;Stable 5xx:&amp;quot;, count}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Stable 5xx: 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 金丝雀错误率略高，继续观察&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限流与熔断&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 upstream 压力过大或响应变慢时，主动拒绝部分请求，防止雪崩效应。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 限流配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $binary_remote_addr zone=api_limit:10m rate=100r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_conn_zone $binary_remote_addr zone=conn_limit:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 令牌桶限流，burst=200 表示突发最多接受 200 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # nodelay 不延迟处理，直接返回 503&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=api_limit burst=200 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 连接数限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn conn_limit 10;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_next_upstream error timeout http_502 http_503;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 熔断配置：基于响应时间自动降级&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 当 upstream 平均响应时间超过阈值时，返回降级响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_bypass $upstream_http_x_downgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 配置模板&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境完整配置示例&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/mime.types;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/octet-stream;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 日志格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format main &amp;#39;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time uct=&amp;quot;$upstream_connect_time&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=&amp;quot;$upstream_header_time&amp;quot; urt=&amp;quot;$upstream_response_time&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;request_id=&amp;quot;$request_id&amp;quot;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log main buffer=16k flush=2s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 基础优化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 65;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_timeout 15s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_timeout 15s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓冲区配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 100m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_buffer_size 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_buffer_size 4k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 16k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 隐藏 Nginx 版本号&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 安全头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Frame-Options &amp;quot;SAMEORIGIN&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Content-Type-Options &amp;quot;nosniff&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-XSS-Protection &amp;quot;1; mode=block&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Referrer-Policy &amp;quot;strict-origin-when-cross-origin&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # upstream 块定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/upstream/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 引入各站点的 server 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/sites-enabled/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/upstream/backend.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_php {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:9000 weight=5 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:9001 weight=5 max_fails=3 fail_timeout=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:9002 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_static {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8082 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_api {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ip_hash;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.20:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 主动健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=2 timeout=1000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/sites-enabled/api.example.com.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 将 HTTP 请求重定向到 HTTPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 301 https://$server_name$request_uri;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl http2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/api.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/api.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_protocols TLSv1.2 TLSv1.3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_prefer_server_ciphers off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_session_cache shared:SSL:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_session_timeout 1d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_session_tickets off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 安全头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Strict-Transport-Security &amp;quot;max-age=31536000; includeSubDomains&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 访问日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/api.example.com.access.log main buffer=16k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 健康检查端点（不经过限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location = /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 200 &amp;quot;OK\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Content-Type text/plain;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # API 路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=api_limit burst=100 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # proxy 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_php;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 120s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓冲区配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffer_size 128k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffers 8 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_busy_buffer_size 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 错误处理：后端故障时返回降级响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; error_page 502 503 = @fallback;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 静态资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /static/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 60m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 降级响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location @fallback {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 503 &amp;#39;{&amp;quot;code&amp;quot;:503,&amp;quot;message&amp;quot;:&amp;quot;Service temporarily unavailable&amp;quot;,&amp;quot;request_id&amp;quot;:&amp;quot;$request_id&amp;quot;}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 429 Too Many Requests 响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location = /429.html {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; internal;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 429 &amp;#39;{&amp;quot;code&amp;quot;:429,&amp;quot;message&amp;quot;:&amp;quot;Rate limit exceeded&amp;quot;,&amp;quot;retry_after&amp;quot;:1}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志切割配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/logrotate.d/nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/*.&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; daily&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; missingok&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rotate 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; compress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; delaycompress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; notifempty&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; create 0640 nginx adm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sharedscripts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; postrotate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [ -f /run/nginx.pid ] &amp;amp;&amp;amp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-USR1 $(cat /run/nginx.pid)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; endscript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 手动测试日志切割&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ logrotate -f /etc/logrotate.d/nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ls -la /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;total 1234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-rw-r----- 1 nginx adm &amp;nbsp; 45678 Apr 24 00:00 access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-rw-r----- 1 nginx adm &amp;nbsp; 12345 Apr 24 00:00 access.log-20260424.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-rw-r----- 1 nginx adm &amp;nbsp; 23456 Apr 24 00:00 error.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-rw-r----- 1 nginx adm &amp;nbsp; &amp;nbsp;8901 Apr 24 00:00 error.log-20260424.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能测试基线&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 wrk 进行基准性能测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ wrk -t4 -c100 -d60s --latency http://api.example.com/api/v1/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Running 1m&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;@ http://api.example.com/api/v1/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 4 threads and 100 connections&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Thread Stats &amp;nbsp; Avg &amp;nbsp; &amp;nbsp; &amp;nbsp;Stdev &amp;nbsp; &amp;nbsp; Max &amp;nbsp; +/- Stdev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Latency &amp;nbsp; &amp;nbsp; 12.34ms &amp;nbsp; &amp;nbsp;2.15ms &amp;nbsp;45.67ms &amp;nbsp; 90.12%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Req/Sec &amp;nbsp; &amp;nbsp;2345.67 &amp;nbsp; &amp;nbsp; 89.23 &amp;nbsp;2500.00 &amp;nbsp; &amp;nbsp;85.00%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Latency Distribution&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;50% &amp;nbsp; &amp;nbsp;11.89ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;75% &amp;nbsp; &amp;nbsp;13.45ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;90% &amp;nbsp; &amp;nbsp;15.23ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;99% &amp;nbsp; &amp;nbsp;25.67ms&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 1234567 requests&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;60.00s, 234.56MB&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;read&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Requests/sec: &amp;nbsp;20576.12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Transfer/sec: &amp;nbsp; &amp;nbsp;3.91MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 ab 进行连接测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ ab -n 10000 -c 1000 -g ab_results.tsv http://api.example.com/api/v1/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;This is ApacheBench, Version 2.3 &amp;lt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$Revision&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: 1879490 $&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Licensed to The Apache Software Foundation, http://www.apache.org/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Benchmarking api.example.com (be patient)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 1000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 2000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 3000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 4000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 5000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 6000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 7000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 8000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 9000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Completed 10000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Finished 10000 requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server Software: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nginx/1.26.2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server Hostname: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;api.example.com&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server Port: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;443&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SSL/TLS Protocol: &amp;nbsp; &amp;nbsp; &amp;nbsp; TLSv1.3, ECDHE-RSA-AES256-GCM-SHA384, 256bit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Document Path: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/api/v1/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Document Length: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3 bytes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Concurrency Level: &amp;nbsp; &amp;nbsp; &amp;nbsp;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Time taken&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tests: &amp;nbsp; 12.345 seconds&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Complete requests: &amp;nbsp; &amp;nbsp; &amp;nbsp;10000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Failed requests: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Non-2xx responses: &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total transferred: &amp;nbsp; &amp;nbsp; &amp;nbsp;2340000 bytes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTML transferred: &amp;nbsp; &amp;nbsp; &amp;nbsp; 30000 bytes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Requests per second: &amp;nbsp; &amp;nbsp;810.23 [&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;#/sec] (mean)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 1234.567 [ms] (mean)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.235 [ms] (mean, across all concurrent requests)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Transfer rate: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;185.23 [Kbytes/sec] received&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connection Times (ms)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; min &amp;nbsp;mean[+/-sd] median &amp;nbsp; max&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connect: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp;0 &amp;nbsp; 0.0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Processing: &amp;nbsp; &amp;nbsp;123 &amp;nbsp;456 &amp;nbsp;78.9 &amp;nbsp; &amp;nbsp;434 &amp;nbsp; &amp;nbsp;1234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Waiting: &amp;nbsp; &amp;nbsp; &amp;nbsp; 123 &amp;nbsp;455 &amp;nbsp;78.9 &amp;nbsp; &amp;nbsp;433 &amp;nbsp; &amp;nbsp;1233&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 123 &amp;nbsp;456 &amp;nbsp;78.9 &amp;nbsp; &amp;nbsp;434 &amp;nbsp; &amp;nbsp;1234&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Percentage of the requests served within a certain time (ms)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 50% &amp;nbsp; &amp;nbsp;434&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 66% &amp;nbsp; &amp;nbsp;456&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 75% &amp;nbsp; &amp;nbsp;478&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 80% &amp;nbsp; &amp;nbsp;489&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 90% &amp;nbsp; &amp;nbsp;534&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 95% &amp;nbsp; &amp;nbsp;612&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 98% &amp;nbsp; &amp;nbsp;723&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 99% &amp;nbsp; &amp;nbsp;789&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;100% &amp;nbsp; 1234 (longest request)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.3 故障应急&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 故障的快速止血&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障发生时，第一目标是快速恢复服务，最小化业务影响。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 立即检查 error.log，确认 502 根因类型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ tail -100 /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;\[error\]&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 快速检查后端服务状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl status php-fpm node-backend gunicorn 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Active:|Main PID:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 如果后端服务挂了，立即重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl restart node-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 如果是单个 upstream server 故障，临时从 upstream 中移除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ vim /etc/nginx/conf.d/upstream/backend.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 注释掉故障 server，保留可用的&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:9000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# server 127.0.0.1:9001; &amp;nbsp;# 临时禁用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -t &amp;amp;&amp;amp; nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 如果所有后端都不可用，启动备用服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ systemctl start emergency-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 扩大上游超时时间，减少 502 触发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ sed -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/proxy_read_timeout 120s;/proxy_read_timeout 300s;/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/nginx/conf.d/upstream/*.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端切换的手动操作&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 手动切换流量到备用后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 场景：主数据库故障，需要切换到从库&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 备份当前 upstream 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cp /etc/nginx/conf.d/upstream/app.conf /etc/nginx/conf.d/upstream/app.conf.bak.$(date +%Y%m%d%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 修改 upstream 指向备用后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ cat &amp;gt; /etc/nginx/conf.d/upstream/app_standby.conf &amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_app {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.2.20:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.2.21:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.2.22:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 测试配置语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -t&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx: the configuration file /etc/nginx/nginx.conf syntax is ok&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx: configuration file /etc/nginx/nginx.conf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is successful&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 优雅reload，不中断现有连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 监控错误率变化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ watch -n 1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;grep -c &amp;quot; 502 &amp;quot; /var/log/nginx/access.log&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 验证备用后端可用性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl -s http://10.0.2.20:8080/health | grep OK&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ curl -s http://10.0.2.21:8080/health | grep OK&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;业务降级方案&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当后端无法处理请求时，返回预设的降级响应而非 502，提升用户体验。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 降级配置示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_primary {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8081 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 主服务不可用时返回缓存或静态降级内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_key &amp;quot;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_valid 200 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_valid 500 502 503 504 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 尝试主后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://backend_primary;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 后端返回 502/503 时使用缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 后端响应慢时使用缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存刷新时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 降级响应：如果缓存也没有，返回静态 JSON&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_page 502 503 504 = @degraded_response;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location @degraded_response {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 返回最近缓存的响应（由 proxy_cache_valid 控制）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Cache-Status &amp;quot;DEGRADED&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 200 &amp;#39;{&amp;quot;code&amp;quot;:200,&amp;quot;message&amp;quot;:&amp;quot;Cached response&amp;quot;,&amp;quot;data&amp;quot;:null,&amp;quot;degraded&amp;quot;:true}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、扩展阅读与证据链&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 官方文档&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 官方文档&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 官方文档（英文）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://nginx.org/en/docs/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx upstream 模块文档&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://nginx.org/en/docs/http/ngx_http_upstream_module.html&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx proxy 模块文档&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://nginx.org/en/docs/http/ngx_http_proxy_module.html&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 故障排查指南&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://nginx.org/en/docs/support.html&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 官方文档&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 配置说明&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://www.php.net/manual/en/install.fpm.configuration.php&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 进程管理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://www.php.net/manual/en/install.fpm.pm.php&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三方模块文档&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx_upstream_check_module（阿里巴巴）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://github.com/yaoweibin/nginx_upstream_check_module&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenResty + lua-upstream&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：https://github.com/openresty/lua-upstream-nginx-module&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 关键配置文件参考&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx.conf 完整模板&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Nginx 1.26.x / 1.27.x 完整配置模板&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_sigpending 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; accept_mutex on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; accept_mutex_delay 500ms;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/mime.types;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/octet-stream;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 字符集&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; charset utf-8;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; charset_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 日志格式（包含 upstream 详细信息）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format main_ext &amp;#39;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uct=&amp;quot;$upstream_connect_time&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=&amp;quot;$upstream_header_time&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;urt=&amp;quot;$upstream_response_time&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;request_id=&amp;quot;$request_id&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;upstream_addr=&amp;quot;$upstream_addr&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;upstream_status=&amp;quot;$upstream_status&amp;quot;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log main_ext buffer=32k flush=5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 基础优化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 65;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_timeout 15s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_timeout 15s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; lingering_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; reset_timedout_connection on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓冲区配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 100m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_buffer_size 256k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_buffer_size 4k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 32k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; connection_pool_size 256;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; request_pool_size 4k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_min_length 1024;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types text/plain text/css text/xml application/json application/javascript application/xml application/atom+xml application/rss+xml image/svg+xml;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 安全配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; hide_server_token on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Open file cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache max=65535 inactive=60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_valid 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_min_uses 2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=general:10m rate=100r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=api:10m rate=1000r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_conn_zone $binary_remote_addr zone=conn:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 引入 upstream 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/upstream/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 引入站点配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/sites-enabled/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM 配置参数说明&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; /etc/php-fpm/www.conf 关键参数说明&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 进程管理器类型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; static - 固定数量的子进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; dynamic - 动态数量的子进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; ondemand - 按需创建子进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm = dynamic&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 子进程最大数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_children = 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 启动时创建的子进程数（dynamic 模式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.start_servers = 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 最小空闲子进程数（dynamic 模式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.min_spare_servers = 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 最大空闲子进程数（dynamic 模式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_spare_servers = 20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 子进程处理请求数上限，达到后重启（防止内存泄漏累积）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.max_requests = 500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 子进程空闲超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pm.process_idle_timeout = 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 紧急重启阈值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;emergency_restart_threshold = 10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;emergency_restart_interval = 1m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 进程控制超时（处理 SIGTERM 需要的时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;process_control_timeout = 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; PHP 内存限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;php_admin_value[memory_limit] = 256M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;php_admin_flag[log_errors] = on&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 慢查询日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;slowlog = /var/log/php-fpm/www-slow.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;request_slowlog_timeout = 10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;request_slowlog_trace_depth = 20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ping.path = /ping&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ping.response = pong&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; Socket 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen = /var/run/php-fpm/www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.owner = www-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.group = www-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen.mode = 0660&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemd Service 文件&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; /etc/systemd/system/php-fpm.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Description=PHP FastCGI Process Manager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Documentation=man:php-fpm(8)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;After=network.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Type=notify&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PIDFile=/run/php-fpm/php-fpm.pid&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStart=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecReload=/bin/kill -USR2 $MAINPID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStop=/bin/kill -SIGINT $MAINPID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PrivateTmp=true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Restart=always&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RestartSec=10s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TimeoutStartSec=30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TimeoutStopSec=30s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 资源限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitNOFILE=65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitNPROC=8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; OOM 策略 - 不阻止 OOM Killer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMScoreAdjust=-500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; /etc/systemd/system/nginx.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Description=nginx - high performance web server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Documentation=https://nginx.org/en/docs/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;After=network.target remote-fs.target nss-lookup.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Type=forking&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PIDFile=/run/nginx.pid&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecReload=/bin/kill -s HUP $MAINPID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStop=/bin/kill -s QUIT $MAINPID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PrivateTmp=true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Restart=always&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RestartSec=5s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;; 资源限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitNOFILE=65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LimitCORE=infinity&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 常见错误码速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;errno&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统调用错误&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;含义&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;111&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ECONNREFUSED&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 端口未监听&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;110&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETIMEDOUT&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 无响应，防火墙拦截&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;113&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EHOSTUNREACH&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主机不可达&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;IP 地址错误，网络不通&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;111&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ECONNREFUSED&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PHP-FPM socket 权限错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;104&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ECONNRESET&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接被重置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 进程崩溃&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;32&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EPIPE&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;管道破裂&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 提前关闭连接&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ENOENT&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件不存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Unix socket 文件不存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.4 502 排查流程图（文字版）&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发现 502 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; v&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 error.log 中的具体错误信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; +---&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;connect() failed (111)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;---&amp;gt; upstream 端口未监听&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查后端服务是否运行: systemctl status php-fpm/node-backend&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查端口/socket 是否监听: ss -tlnp | grep 9000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查配置中 IP:端口是否正确&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; +---&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream prematurely closed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;---&amp;gt; upstream 进程崩溃&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查 dmesg | grep -i oom（内存不足）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查后端错误日志（PHP fatal error、core dump）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查 upstream 是否被 OOM Killer 杀死&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; +---&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream timed out&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;---&amp;gt; 后端处理超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查后端处理时间（数据库查询、外部 API）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 调整 proxy_read_timeout&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp; +---&amp;gt; 优化后端性能或增加资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; +---&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;no live upstreams&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;---&amp;gt; 所有 upstream 都不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +---&amp;gt; 检查所有 upstream server 的健康状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +---&amp;gt; 可能是 max_fails 导致所有节点被暂时禁用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +-----&amp;gt; 等待 fail_timeout 过去或重启 upstream&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、自检清单&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 部署前检查清单&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] Nginx 配置文件语法验证通过：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 后端服务已启动并监听正确端口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] upstream 配置的 IP:端口与实际一致&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 超时参数（proxy_connect_timeout、proxy_read_timeout）已根据业务调整&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 缓冲区参数（proxy_buffer_size、proxy_buffers）已配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] keepalive 配置已启用（proxy_http_version 1.1 + Connection &amp;quot;&amp;quot;）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] socket 文件权限正确（listen.owner/listen.group）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] SELinux/AppArmor 策略允许 Nginx 与后端通信&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 日志级别设置为 warn 或 error&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 健康检查已配置（被动或主动）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 故障发生时的快速检查项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 查看 error.log，确认具体错误信息&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 确认后端服务进程存活：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status php-fpm&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 确认端口/socket 监听：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tlnp | grep 9000&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 测试后端可连接性：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v http://127.0.0.1:9000/health&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查系统资源（CPU、内存、磁盘IO）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查 dmesg 中是否有 OOM Killer 记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查 upstream 是否被标记为 down&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 复盘与预防检查项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 错误是否可复现&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 根因是否已定位并解决&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 是否有监控告警覆盖同类问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 是否需要调整超时/缓冲区等参数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 是否需要增加资源或优化架构&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 是否更新了 SOP 和运维文档&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录 A：错误日志关键字索引&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;关键字&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理优先级&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connect() failed (111)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 未监听端口&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P0 - 立即处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream prematurely closed&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 崩溃&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P0 - 立即处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream timed out&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P1 - 优化超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;no live upstreams&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有 upstream 不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P0 - 立即处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;buffer is too small&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓冲区配置不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P1 - 调整缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Permission denied&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P0 - 立即处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;connection reset&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 强制断开&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P1 - 检查 upstream 健康&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;broken header&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 返回损坏响应&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P1 - 检查 upstream&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录 B：命令速查卡片&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Nginx 基础操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试配置语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reload &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优雅重载配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s stop &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 快速关闭&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s quit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优雅关闭&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -V &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看版本和编译参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep 502&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$9==502 {count++} END {print count}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -C 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;502&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 后端服务检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tlnp | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;:(80|443|9000)&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep php-fpm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;netstat -ant | grep :8080 | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v http://127.0.0.1:8080/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SCRIPT_NAME=/ping cgi-fcgi -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;bind&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-connect /var/run/php-fpm/www.sock&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nc -zv 127.0.0.1 9000 -w 3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 性能监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;top -b -n 1 | head -20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统资源&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reopen &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重新打开日志文件（配合 logrotate）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录 C：配置参数参考表&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream 指令&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定义 upstream server，格式：address [parameters]&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;weight&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权重，用于加权轮询&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max_fails&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;失败次数阈值，超过后标记为不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fail_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;失败超时时间，同时也是不可用持续时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backup&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标记为备用服务器&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;down&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标记为永久不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive 连接池大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_requests&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单连接最大请求数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive 空闲超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;slow_start&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;慢启动时间（商业版 Nginx Plus）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy 指令&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指定 upstream 或 URL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_http_version&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.0&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 版本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_send_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发送请求超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;读取响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4k/8k&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应头缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffers&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8 4k/8k&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_busy_buffer_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;忙碌缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffering&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;on&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是否启用缓冲&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_max_temp_file_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1024m&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时文件总大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_temp_file_write_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_buffer_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单次写入临时文件大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_set_header&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Host $proxy_host&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设置请求头&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_next_upstream&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障转移条件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-indent: 0em; text-wrap-mode: wrap; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;本文档由运维团队基于多年生产环境排障经验整理，涵盖 Nginx 502 错误的识别、诊断、处理的完整方法论。如有补充或修正，请提交 PR 至内部文档仓库。&lt;/span&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071842263343231.png&quot; alt=&quot;image.png&quot; width=&quot;497&quot; height=&quot;174&quot; style=&quot;width: 497px; height: 174px;&quot;/&gt;&lt;/p&gt;</description><pubDate>Tue, 18 Aug 2026 18:38:00 +0800</pubDate></item><item><title>Docker 最新动态：Docker Desktop 4.84 发布，AI、本地模型与安全镜像成为主线</title><link>https://www.kubernetes.top/?id=466</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: center; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071835158855203.jpg&quot; alt=&quot;2f5e5efac3a43632d32f5111c888ec05.jpg&quot; width=&quot;626&quot; height=&quot;364&quot; style=&quot;width: 626px; height: 364px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;截至 2026 年 8 月，Docker 生态最近几个月的变化非常密集。&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777211738-0.7685452391578617&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;Docker Desktop&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、Docker Engine、Docker Hardened Images、Docker Model Runner、Gordon AI Agent、&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777211745-0.16121058679985467&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;Docker Offload&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;都在持续更新。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;如果用一句话概括 Docker 当前的方向：&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold; visibility: visible;&quot;&gt;Docker 正在从“容器开发工具”升级为面向 AI 原生应用、供应链安全和企业开发环境的一体化平台。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1. Docker Desktop 4.84 发布：继续强化桌面端开发体验&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;根据 Docker 官方文档，Docker Desktop 最新版本已更新到&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold; visibility: visible;&quot;&gt;4.84.0&lt;/span&gt;，发布时间为&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold; visibility: visible;&quot;&gt;2026 年 7 月 27 日&lt;/span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这一版本主要更新包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Docker Agent v1.111.0&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Docker Hardened Images CLI&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;dhictl&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;v0.0.7&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Docker Desktop CLI v0.4.3&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Kubernetes 组件更新，包括&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;cri-dockerd&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;v0.4.4&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;修复无效&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;~/.docker/config.json&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;导致 Docker Desktop 高 CPU / 高内存占用并卡住的问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在此前的 4.83.0 和 4.80.0 中，Docker Desktop 还更新了 Docker Engine、Docker Compose、Docker Model Runner、Docker Offload、Buildx、containerd、runc 以及内置 Kubernetes 版本。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这说明 Docker Desktop 已经不只是一个本地容器 GUI，它正在成为 Docker AI、模型运行、Kubernetes、本地构建、安全扫描和企业策略控制的统一入口。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2. Docker Engine 29.6.2：重点修复安全漏洞&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Engine 最新 29.x 分支中，&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold;&quot;&gt;29.6.2 于 2026 年 7 月 16 日发布&lt;/span&gt;。这个版本的重点是安全修复。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官方发布说明中列出了多项安全漏洞修复，包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Git source checkout 相关命令注入风险&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;构建前端参数导致 panic 的问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LLB 文件操作可能误删&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/tmp&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;内容的问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上传本地 source 时目录校验绕过问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Windows 容器缓存挂载中 NTFS junction 解析问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;此外，Docker Engine 29.6.2 还更新了：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd 静态二进制到 v2.2.6&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Go runtime 到 1.26.5&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RootlessKit 到 v3.0.2&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对生产环境来说，这类版本非常值得关注。它不是“功能炫技型更新”，而是直接关系到构建链路、镜像处理、Windows 容器和 rootless 场景的安全性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建议企业用户优先评估升级，尤其是 CI/CD 构建节点、共享构建平台和多租户容器环境。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3. Docker Hardened Images：安全镜像正在成为默认起点&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;过去一年，Docker 在安全镜像方向投入明显加速。Docker Hardened Images（DHI）已经成为 Docker 生态中最重要的新产品线之一。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 官方在 2026 年多篇文章中持续强调 DHI 的定位：它不是简单的 slim 镜像，而是面向生产环境的安全基础镜像，特点包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更小攻击面&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;持续修复 CVE&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SBOM 软件物料清单&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SLSA Build Level 3 provenance&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenVEX 数据&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加密签名&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;基于 Alpine 和 Debian 等常见发行版&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Community 版本免费开放，Apache 2.0 许可&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 官方还表示，DHI Catalog 已经扩展到数千个镜像、MCP server、Helm chart 和 ELS 镜像，并且日拉取量已经达到较高规模。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对开发者来说，最直接的变化是：以后选择基础镜像时，不应只看体积小不小，还要看它是否可验证、是否持续维护、是否有&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777211745-0.9010515876191786&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;SBOM&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和签名。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;换句话说，FROM debian:slim 这类传统选择，未来可能会逐步被更安全的 hardened image 替代。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4. Docker Model Runner：Docker 正在进入本地 AI 模型工作流&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AI 是 Docker 近期最明显的产品方向之一。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Model Runner 已经进入 GA 阶段，它允许开发者用熟悉的 Docker 工作流运行本地大模型。它支持：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从 Docker Hub 拉取 OCI 格式模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从 Hugging Face 获取 GGUF 模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用 OpenAI 兼容 API 调用本地模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 Docker Desktop 和 CLI 中管理模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;支持本地 GPU 加速&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与 Compose、MCP、AI 应用开发流程集成&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这对开发者的意义很直接：以前本地跑模型往往需要安装 Python 环境、推理框架、驱动、模型管理工具；现在 Docker 希望把模型也变成一种“可分发、可运行、可管理”的制品。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器镜像解决了应用分发问题，OCI Artifact 正在进一步承载模型分发问题。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5. Gordon GA：Docker 的&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777211745-0.2309573319643342&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;AI Agent&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;已进入正式可用阶段&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 的 AI Agent&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold;&quot;&gt;Gordon&lt;/span&gt;也已经 GA。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gordon 的定位不是通用聊天机器人，而是理解 Docker 工作流的 AI 助手。它可以在 Docker Desktop 和 CLI 中使用，帮助开发者处理：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器启动失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像构建报错&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Compose 服务连接问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Dockerfile 优化&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;本地环境排查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器化建议&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署前检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;它的关键点是：Gordon 可以读取当前 Docker 环境上下文，并在用户批准后执行操作。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这和普通 AI 编程助手不同。普通助手可以解释错误，但未必知道你当前有哪些容器、镜像、网络、volume、Compose 项目。Gordon 的优势就是贴近 Docker 实际运行环境。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6. Docker Offload GA：本地跑不动，也能用 Docker&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Offload 已于 2026 年 4 月进入 GA。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个功能主要解决一个企业开发痛点：很多开发者处在&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1788777211745-0.8768191914959218&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #576B95; cursor: default;&quot;&gt;VDI&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: rgb(87, 107, 149); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、托管桌面、低配置电脑或受限环境中，本地无法完整运行 Docker Desktop 或大型构建任务。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Offload 的思路是：保留本地 Docker 开发体验，但把重负载放到远程资源上执行。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这对企业团队很有价值，尤其是：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;远程办公团队&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;外包和受控终端环境&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低配置开发机&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要更快构建资源的团队&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全策略限制本地虚拟化的公司&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 的方向很明确：开发者仍然使用熟悉的 Docker 命令，但计算资源不一定必须在本机。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7. 对国内开发者和企业的建议&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结合 Docker 近期动态，建议关注几个实践方向。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一，尽快升级 Docker Engine 和 Docker Desktop，尤其是涉及构建平台、安全扫描、共享开发环境的场景。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二，评估 Docker Hardened Images。基础镜像安全已经不只是安全团队的问题，它会直接影响每一个业务镜像的漏洞数量和修复成本。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三，AI 应用开发者可以关注 Docker Model Runner。对于本地调试 AI 应用、验证 OpenAI 兼容接口、测试模型服务，它正在变成一个低门槛入口。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四，仍在维护复杂 Compose 项目的团队，可以关注 Docker AI、Gordon、Model Runner、MCP Toolkit 之间的组合能力。Docker 正在把容器、模型、工具调用和 AI Agent 串成一个开发闭环。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五，企业环境可以关注 Docker Offload。未来“本地 Docker 体验 + 云端/远端执行资源”可能会成为企业开发环境的新常态。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 12px; padding: 0px; outline: 0px; font-weight: 500; font-size: 17px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); color: rgb(43, 119, 191); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结语&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026 年的 Docker，已经不只是我们熟悉的 docker run 和 docker build。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;它正在围绕三个方向重新组织产品能力：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold;&quot;&gt;AI 原生开发&lt;/span&gt;：Model Runner、Gordon、MCP Toolkit&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold;&quot;&gt;供应链安全&lt;/span&gt;：Docker Hardened Images、SBOM、签名、VEX、SLSA provenance&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-weight: bold;&quot;&gt;企业级开发体验&lt;/span&gt;：Docker Desktop、Docker Offload、统一 CLI 和远程执行能力&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对开发者来说，Docker 仍然是那个最熟悉的容器工具；但对平台团队和企业来说，Docker 正在成为连接本地开发、AI 模型、安全镜像和生产交付的重要基础设施。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参考来源：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 24px; padding: 0px 0px 0px 1.2em; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-size: 15px; line-height: 1.8; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Desktop Release Notes：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://docs.docker.com/desktop/release-notes/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Engine 29 Release Notes：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://docs.docker.com/engine/release-notes/29/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Hardened Images：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://www.docker.com/products/hardened-images/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Model Runner：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://www.docker.com/products/model-runner/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gordon：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://www.docker.com/products/gordon/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker Offload GA：&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;https://www.docker.com/blog/docker-offload-now-generally-available-the-full-power-of-docker-for-every-developer-everywhere/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文部分内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/09/202609071835498461296.png&quot; alt=&quot;image.png&quot; width=&quot;523&quot; height=&quot;172&quot; style=&quot;width: 523px; height: 172px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;</description><pubDate>Thu, 06 Aug 2026 18:33:36 +0800</pubDate></item><item><title>Kubernetes 最新动态：v1.36 发布，AI、GPU、安全与流量治理成为主线</title><link>https://www.kubernetes.top/?id=464</link><description>&lt;section style=&quot;text-align: center&quot; nodeleaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606301719158903480.png&quot; alt=&quot;0969ab131beeed9b7fc6e97eac6aaab3.png&quot; width=&quot;649&quot; height=&quot;417&quot; style=&quot;width: 649px; height: 417px;&quot;/&gt;&lt;/section&gt;&lt;p data-pm-slice=&quot;0 0 []&quot;&gt;&lt;span leaf=&quot;&quot;&gt;截至 2026 年 6 月，Kubernetes 最新稳定版本已经来到&amp;nbsp;&lt;/span&gt;&lt;strong&gt;v1.36.2&lt;/strong&gt;&lt;span leaf=&quot;&quot;&gt;。根据 Kubernetes 官方发布页，v1.36 当前处于活跃支持状态，最新补丁版本 v1.36.2 于 2026 年 6 月 9 日发布，维护周期预计持续到 2027 年 6 月 28 日。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这次 v1.36 版本代号为&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Haru&lt;/strong&gt;&lt;span leaf=&quot;&quot;&gt;，官方发布于 2026 年 4 月 22 日。相比单纯的功能堆叠，v1.36 更像是 Kubernetes 面向下一阶段基础设施需求的一次集中推进：更强的安全隔离、更成熟的 GPU/AI 资源管理、更稳定的存储能力，以及更现代的流量入口体系。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;1. Kubernetes v1.36：70 项增强，18 项进入稳定版&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.36 共包含&amp;nbsp;&lt;/span&gt;&lt;strong&gt;70 项增强&lt;/strong&gt;&lt;span leaf=&quot;&quot;&gt;，其中&amp;nbsp;&lt;/span&gt;&lt;strong&gt;18 项进入 Stable/GA&lt;/strong&gt;&lt;span leaf=&quot;&quot;&gt;，25 项进入 Beta，25 项进入 Alpha。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;几个值得重点关注的方向包括：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1782811095936-0.9390500399864203&quot;&gt;User Namespaces&lt;/span&gt; 正式 GA&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;User Namespaces 在 v1.36 中进入稳定版。它允许容器内的 root 用户映射为宿主机上的非特权用户。简单说，即使容器内进程以 root 身份运行，它在宿主机上也不再天然拥有 root 权限。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这对多租户集群、安全敏感型业务、边缘节点和平台团队都很关键。容器逃逸风险无法只靠“不要出漏洞”来解决，Kubernetes 正在把更强的隔离能力做成默认可依赖的基础能力。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;细粒度 Kubelet API 授权 GA&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;过去很多监控和排障场景需要较宽泛的&amp;nbsp;&lt;/span&gt;&lt;code&gt;nodes/proxy&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;权限。v1.36 中细粒度 Kubelet API 授权进入 GA，可以让平台团队按最小权限原则授予访问能力，降低观测工具、自动化组件或内部平台被滥用后的影响面。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;PSI 指标 GA：更准确地判断节点压力&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;基于 &lt;span class=&quot;&quot; link-id=&quot;link-1782811096086-0.00022192069333759612&quot;&gt;cgroup v2&lt;/span&gt; 的 PSI（Pressure Stall Information）指标进入稳定版。它能帮助 kubelet 暴露 CPU、内存、I/O 等资源压力信号。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这类指标比单纯的资源使用率更接近真实体验：一个节点可能“看起来 CPU 没满”，但应用已经因为资源竞争出现等待和抖动。PSI 对容量规划、自动扩缩容、性能诊断都有直接价值。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;2. AI 与 GPU 工作负载：DRA 继续成熟&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Dynamic Resource Allocation（DRA，动态资源分配）是 Kubernetes 近几个版本最值得关注的方向之一。到了 v1.36，DRA 生态中部分治理和选择能力已经进入 Stable，同时更多能力进入 Beta。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这背后的趋势很清晰：Kubernetes 正在从“调度 CPU 和内存”走向“调度 GPU、DPU、专用加速卡、&lt;span class=&quot;&quot; link-id=&quot;link-1782811096086-0.8713727218440539&quot;&gt;可切分设备&lt;/span&gt;和复杂硬件拓扑”。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;对 AI 平台来说，这意味着未来 Kubernetes 可以更原生地表达：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;GPU 等专用设备的分配和健康状态&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;多租户场景下的资源隔离与优先级&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;设备容量、分区、&lt;span class=&quot;&quot; link-id=&quot;link-1782811096086-0.15723597601061967&quot;&gt;污点和容忍度&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;大模型训练、推理、HPC 任务中的硬件编排&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;v1.36 中 &lt;span class=&quot;&quot; link-id=&quot;link-1782811096086-0.8646072344932367&quot;&gt;Pod&lt;/span&gt; 的&amp;nbsp;&lt;/span&gt;&lt;code&gt;allocatedResourcesStatus&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;字段也进入 Beta，用户可以通过&amp;nbsp;&lt;/span&gt;&lt;code&gt;kubectl describe pod&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;更直接地看到已分配设备是否处于&amp;nbsp;&lt;/span&gt;&lt;code&gt;Unhealthy&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code&gt;Unknown&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;状态。这对定位 GPU 故障导致的 CrashLoop 非常实用。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;3. 存储能力继续补齐：卷组快照 GA&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;VolumeGroupSnapshot 在 v1.36 中进入 GA。它允许用户对多个 PVC 同时创建崩溃一致性快照。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这对数据库、中间件、分布式存储和多卷应用尤其重要。很多真实业务并不是一个 Pod 只挂一个卷，恢复时也不能只恢复其中一块盘。卷组快照进入稳定版，意味着 Kubernetes 在有状态应用备份恢复方面继续补齐生产能力。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;同时，Mutable CSINode Allocatable 也进入稳定版。CSI 驱动可以动态更新节点可挂载卷数量，kubelet 无需重启即可刷新相关信息，调度器也能获得更准确的存储容量视图。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;4. OCI 不只装镜像：OCI Volume Source GA&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;v1.36 中 OCI Volume Source 进入稳定版。开发者可以把模型文件、静态资源、配置包等只读内容打包成 OCI Artifact，然后像使用镜像仓库一样分发给 Pod。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这对 AI 模型分发、边缘节点内容同步、静态资源版本化都很有想象空间。过去我们习惯把 OCI Registry 当作“镜像仓库”，但现在它正在变成更通用的软件制品分发基础设施。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;5. 流量入口变局：Gateway API v1.5 与 Ingress NGINX 退役&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;除了 Kubernetes v1.36 本身，流量治理领域也有两个重要变化。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gateway API v1.5 已发布&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Gateway API v1.5 于 2026 年 2 月 27 日发布，官方称这是目前最大的一次 Gateway API 发布。v1.5 将 6 个常用功能推进到 Standard/Stable 通道，包括 ListenerSet、TLSRoute、HTTPRoute CORS Filter、客户端证书校验、Gateway TLS Origination 证书选择、ReferenceGrant 等。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;其中 ListenerSet 对多团队共享网关很有价值。平台团队可以维护统一 Gateway，应用团队通过 ListenerSet 独立扩展自己的监听配置，减少多个团队直接修改同一个 Gateway 对象带来的协作风险。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Ingress NGINX 已进入退役阶段&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes SIG Network 和安全响应委员会此前宣布，Ingress NGINX 的最佳努力维护持续到 2026 年 3 月。之后将不再发布新版本、Bugfix 或安全漏洞修复。现有部署不会立刻失效，镜像和 Helm Chart 等制品仍会保留，但官方建议用户尽快迁移到 Gateway API 或其他 Ingress Controller。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;这对很多生产集群是一个必须排期处理的事项。尤其是仍在使用&amp;nbsp;&lt;/span&gt;&lt;code&gt;ingress-nginx&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;的团队，应尽快盘点集群并制定迁移方案。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;可用以下命令初步检查是否部署了 Ingress NGINX：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot;&gt;&lt;pre data-lang=&quot;sql&quot;&gt;kubectl&amp;nbsp;get&amp;nbsp;pods&amp;nbsp;--all-namespaces&amp;nbsp;--selector&amp;nbsp;app.kubernetes.io/name=ingress-nginx&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;6. 升级建议：先盘点，再分阶段推进&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;对生产环境来说，不建议只因为“新版本发布”就立刻升级。但 v1.36 带来的变化值得提前评估。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;建议重点检查：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;当前 Kubernetes 版本是否仍在支持周期内&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否仍依赖 Service&amp;nbsp;&lt;/span&gt;&lt;code&gt;spec.externalIPs&lt;/code&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否使用已经移除的&amp;nbsp;&lt;/span&gt;&lt;code&gt;gitRepo&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;volume&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否部署了 Ingress NGINX&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否有 GPU、AI、HPC 等专用硬件调度需求&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否准备启用 Gateway API 替代传统 Ingress&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;是否有多租户安全隔离需求，可评估 User Namespaces&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;尤其要注意，v1.36 已废弃 Service&amp;nbsp;&lt;/span&gt;&lt;code&gt;spec.externalIPs&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;，并计划在未来版本移除；&lt;/span&gt;&lt;code&gt;gitRepo&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;volume driver 在 v1.36 中已经被永久禁用。&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px&quot;&gt;结语&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.36 的关键词不是“更多功能”，而是“更适合现代基础设施”。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;它把安全隔离、硬件资源管理、存储快照、流量治理和制品分发继续往生产级推进。对于正在建设云原生平台、AI 平台或多租户 PaaS 的团队来说，v1.36 值得重点关注；对于仍在使用 Ingress NGINX 的团队，迁移计划也应该尽快提上日程。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes 已经不只是容器编排系统，它正在成为 AI 时代基础设施调度和治理的核心底座。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;参考来源：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes Releases：&lt;/span&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;https://kubernetes.io/releases/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Kubernetes v1.36 发布公告：&lt;/span&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Gateway API v1.5：&lt;/span&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;https://kubernetes.io/blog/2026/04/21/gateway-api-v1-5/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Ingress NGINX Retirement：&lt;/span&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;border-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;border-color: rgba(0, 0, 0, 0.098);transform-origin: 0px 0px 0px;transform: scale(1, 0.5);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent;margin-top: 0px;margin-bottom: 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #B2B2B2;font-size: 15px;letter-spacing: 0.408px;text-align: left;word-spacing: 1px&quot;&gt;免责声明：本文部分内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;text-align: center;widows: 1;letter-spacing: 0.408px;border-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;border-color: rgba(0, 0, 0, 0.098);transform-origin: 0px 0px 0px;transform: scale(1, 0.5);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent;margin-top: 0px;margin-bottom: 24px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;text-wrap-mode: wrap;background-color: rgb(255, 255, 255);word-spacing: 2px;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;letter-spacing: 1px;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606301720159822708.jpg&quot; alt=&quot;783656b39ed63d779da07f9ed7143339.jpg&quot; width=&quot;507&quot; height=&quot;179&quot; style=&quot;width: 507px; height: 179px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 29 Jun 2026 17:17:50 +0800</pubDate></item><item><title>Docker 最新动态观察：容器平台正在向 AI Runtime 与开发治理平台演进</title><link>https://www.kubernetes.top/?id=458</link><description>&lt;section style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;0&quot;&gt;&lt;section style=&quot;line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240938307343276.png&quot; alt=&quot;562cd8b0ba1446e99e3e56aff28f3519.png&quot; width=&quot;839&quot; height=&quot;528&quot; style=&quot;width: 839px; height: 528px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;1&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;截至 2026 年 6 月，Docker 的产品路线已经出现明显变化。相比过去围绕容器构建、分发与本地开发体验的传统叙事，Docker 近期更强调三个方向：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;2&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;1. AI Agent 的运行时安全治理&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 data-layout-id=&quot;3&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;2. &lt;span class=&quot;&quot; link-id=&quot;link-1782265064982-0.5968309226339632&quot;&gt;软件供应链&lt;/span&gt;与基础镜像可信能力&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 data-layout-id=&quot;4&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 18px;&quot;&gt;3. 本地开发环境的可审计与可控性&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;5&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这意味着 Docker 正在从“容器工具链”向“面向 AI 开发时代的运行平台”演进。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;6&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;一、Docker Desktop 4.77.0 发布，持续强化开发环境控制面&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;7&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 6 月 8 日，Docker Desktop 4.77.0 发布。更新点包括：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Logs 视图支持日志导出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1782265064983-0.19922921227378865&quot;&gt;Docker Engine&lt;/span&gt; 升级至 v29.5.3&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Buildx 升级至 v0.34.1&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker Agent、Docker MCP Gateway、containerd 等组件同步更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Marketplace 扩展采用固定 manifest digest 进行安装与更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;13&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这些变更说明 Docker 正在持续补强 Desktop 作为“开发控制平面”的属性，而不仅仅是容器运行器。尤其是扩展安装链路的可验证性提升，反映出 Docker 对开发者工作站供应链风险的持续重视。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;14&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;二、Docker AI Governance 说明 Docker 已将 Agent 安全作为核心命题&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;15&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 5 月，Docker 推出 Docker AI Governance。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;16&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;该能力的核心背景在于：&lt;span class=&quot;&quot; link-id=&quot;link-1782265064983-0.8694334576614706&quot;&gt;AI Agent&lt;/span&gt; 已从代码补全工具，逐步演变为具备执行能力的任务代理。它们可以读写文件、访问网络、调用本地 shell、连接 MCP 工具，甚至接触企业内部凭据。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;17&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在这一前提下，开发者终端不再只是个人工作设备，而成为高权限执行环境。Docker AI Governance 试图围绕以下四个维度建立约束：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;网络访问策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;文件系统挂载与读写范围限制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;凭据暴露面控制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1782265065115-0.44446749815590647&quot;&gt;MCP Server&lt;/span&gt; 与工具调用治理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;22&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这意味着 Docker 试图在容器、开发环境与 AI Agent 之间，建立统一的运行时权限边界。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;23&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;三、&lt;span class=&quot;&quot; link-id=&quot;link-1782265065158-0.6764663469350465&quot;&gt;Docker Sandboxes&lt;/span&gt; 的重点不是便利，而是失误隔离&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;24&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 近期也持续强调 Sandboxes 的现实价值，尤其是在 AI 编程助手误执行危险命令的场景下。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;25&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;典型案例是 Agent 误执行 `rm -rf ~/`，直接删除用户主目录。该案例揭示的问题是：当 Agent 具备真实执行权限时，错误将不再停留在“代码质量”层面，而可能直接上升为“本地环境破坏”。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;26&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker Sandboxes 的价值在于：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;将 Agent 执行环境与宿主机隔离&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;限制其可访问目录、网络与工具边界&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在默认假设模型会犯错的前提下，以工程隔离替代主观信任&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;30&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这套思路与传统生产环境安全设计一致，本质上是把最小权限原则引入 AI 开发工作流。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;31&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;四、Docker Hardened Images 持续补强企业供应链安全能力&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;32&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 6 月 11 日，Docker 宣布 Docker Hardened Images 与 Aikido 的漏洞扫描集成增强，重点是支持 VEX 信息。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;33&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;VEX 的意义在于，可以区分“存在于 SBOM 中”与“真实可利用”的漏洞，从而降低大量误报对企业安全团队的干扰。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;34&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这说明 Docker Hardened Images 的价值不只在于镜像瘦身，更在于：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;降低基础镜像攻击面&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;提供更可信的镜像来源&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;通过 SBOM、VEX 等元数据增强漏洞判断精度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;改善企业在 DevSecOps 流程中的风险优先级决策&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;39&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;对企业用户而言，这比单纯的镜像体积优化更有实际意义。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;40&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;五、Copy Fail 漏洞再次提醒：容器安全仍以宿主机安全为基础&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;41&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2026 年 5 月 27 日，Docker 针对 Linux 内核漏洞 CVE-2026-31431（Copy Fail）发布缓解建议。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;42&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Docker 的建议包括：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;升级 Docker Engine 至 v29.4.3 或更高版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;优先应用宿主机内核补丁&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在发行版尚未发布修复时，先通过 Engine 升级降低风险暴露&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;46&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这一事件再次证明：容器隔离能力并非脱离宿主机内核独立存在。Docker 安全能力的上限，仍然受 Linux 内核与相关安全机制约束。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;47&quot; style=&quot;font-size: 20px; font-weight: 500; color: rgb(43, 119, 191); line-height: 1.8; margin-bottom: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;48&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;从近期动作来看，Docker 的定位正在发生明显变化。其产品叙事已经从“容器化工具链”逐步延伸到以下几个层面：&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;AI Agent Runtime&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;本地开发环境治理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;MCP 工具权限控制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;软件供应链与可信镜像&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;font-size: 17px; margin-bottom: 24px; line-height: 1.8;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;企业级研发安全平台&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-layout-id=&quot;54&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;因此，Docker 的下一阶段竞争力，未必只体现在容器技术本身，而更可能体现在它能否成为企业接入 AI 编程与自动化研发流程时的标准运行底座。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;55&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;资料来源：&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;56&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Desktop 4.77.0 Release Notes&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;57&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://docs.docker.com/desktop/release-notes/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;58&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker AI Governance&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;59&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/docker-ai-governance-unlock-agent-autonomy-safely/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;60&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Hardened Images + Aikido&lt;/span&gt;&lt;/span&gt;https://www.docker.com/blog/docker-hardened-images-enhanced-vulnerability-scanning-with-docker-and-aikido/&lt;/section&gt;&lt;section data-layout-id=&quot;62&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;Docker Sandboxes and AI Agent Incident&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;63&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/coding-agent-horror-stories-the-rm-rf-incident/&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;64&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold;&quot;&gt;CVE-2026-31431 Copy Fail Mitigation&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;65&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;https://www.docker.com/blog/mitigating-cve-2026-31431-copy-fail-in-docker-engine/&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;67&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #2B77BF;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;text-align: center; font-size: 17px; line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;69&quot;&gt;&lt;section style=&quot;color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240939269554622.png&quot; alt=&quot;9f00343919e7f44af2981706003985d3.png&quot; width=&quot;591&quot; height=&quot;204&quot; style=&quot;width: 591px; height: 204px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;</description><pubDate>Wed, 17 Jun 2026 09:37:46 +0800</pubDate></item><item><title>Docker最新技术观察：漏洞数据库变动，正在影响容器安全治理</title><link>https://www.kubernetes.top/?id=459</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240941209138325.png&quot; alt=&quot;6004d42191e6c555ae7afd46fbcf507c.png&quot; width=&quot;884&quot; height=&quot;411&quot; style=&quot;width: 884px; height: 411px;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最近，Docker 官方发布了一篇面向容器安全团队的技术文章，讨论了一个看起来不像“功能更新”、但实际影响可能不小的话题：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;NIST 正在调整 NVD（National Vulnerability Database，国家漏洞数据库）的补充信息策略，容器安全体系需要重新评估。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于长期依赖 CVSS、&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265220077-0.23550491911838511&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;CPE&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、CWE 等字段来做漏洞筛选、风险排序和合规检查的团队来说，这不是一次普通的数据源变化，更像是一次方法论提醒：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;未来的容器安全，不能只依赖“漏洞数据是否完整”，而要更多回到运行时风险、镜像上下文和实际可利用性本身。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对关注 Docker、Kubernetes、软件供应链安全和&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265220078-0.36670776428158014&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;DevSecOps&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的同学来说，这篇文章值得认真看一遍。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发生了什么？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根据 Docker 官方文章介绍，2026 年 4 月 15 日，NIST 宣布对 NVD 采用新的优先级补充模式。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;简单来说：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大多数 CVE 仍会继续发布。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但并不是所有漏洞都会像过去那样持续附带完整的补充信息。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;包括很多团队常用的 CVSS 评分、CPE 映射、CWE 分类，未来覆盖可能不再像过去那样稳定。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这意味着，很多基于这些字段构建起来的自动化安全流程，可能都会受到影响。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的漏洞扫描、准入规则、告警排序、合规报表，严重依赖 NVD 的这些结构化字段，那么现在就该重新检查你的流程设计了。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;为什么这件事会影响容器安全？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多团队做镜像漏洞治理时，表面上是在“扫镜像”，但实际上依赖的是一整套漏洞元数据解释系统。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见流程大致是这样的：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扫描镜像中的软件包和依赖组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将结果映射到 CVE。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;再利用 CVSS、CPE、CWE 等字段做分级、归因和规则判断。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最终输出告警、阻断策略、修复优先级或审计结果。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这套方法过去几年几乎成了默认做法。问题在于，它有一个很强的前提：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;外部漏洞数据源要足够完整、足够标准、足够持续。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;而这次 NVD 的变化，恰恰说明这个前提并不总是成立。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;尤其在容器场景里，漏洞管理本来就不只是“有没有这个 CVE”这么简单，还包括：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个组件是否真的会在运行时被使用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个漏洞是否处于可达路径上。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个问题对当前镜像构建方式是否真正有影响。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个风险和基础镜像、应用层、运行配置之间是什么关系。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果过度依赖 NVD 补充字段，团队就很容易把“数据完整”误当成“风险判断准确”。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Docker 这篇文章释放了哪些信号？&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1. 漏洞治理不能再只靠 CVSS 分数驱动&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多团队习惯把 CVSS 分数作为修复优先级的主要依据，高分先修、低分靠后，流程上简单直接。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但在容器环境里，这种做法本来就有局限。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个高分漏洞，如果对应组件并不在实际运行路径中，风险未必真的高；反过来，一个分数不算最高的问题，如果正好处在关键暴露面，影响可能更直接。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这次 Docker 官方文章传递出的一个重要信号就是：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;安全团队需要减少对单一评分体系的机械依赖，转而更多结合运行上下文和可利用性来判断风险。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2. CPE 映射不稳定后，很多老式扫描逻辑会更脆弱&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多扫描工具和内部规则引擎，会基于 CPE 做匹配、归类和关联分析。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但如果这类补充数据今后不再稳定，那么很多依赖固定字段的逻辑都可能出现：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;漏扫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;误报。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分级不一致。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;历史趋势失真。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这对依赖自动化报表、准入门禁和合规流水线的团队来说，影响并不小。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3. 容器安全的重点，正在从“发现更多漏洞”转向“更准确理解风险”&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这几年大家已经逐渐意识到，漏洞扫描里的“噪音”问题越来越严重。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像越复杂、依赖越多，扫描结果越容易失控。很多团队其实并不缺告警，缺的是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;能支撑决策的高质量判断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从这个角度看，NVD 的变化虽然会带来短期不适，但也可能倒逼整个行业往更务实的方向走：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;少一点字段依赖，多一点上下文分析。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对 Docker / Kubernetes 团队意味着什么？&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你所在团队正在维护容器平台、Kubernetes 集群或者镜像供应链，建议重点检查以下几个方面。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一是检查你的漏洞处理流程，是否过度依赖 NVD 补充字段&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的分级规则、阻断条件、例外审批、合规证明严重依赖 CVSS、CPE、CWE 的完整性，那就需要尽快评估替代方案或补充判断机制。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二是重新审视“镜像安全”到底在解决什么问题&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多时候，团队陷入的是“漏洞数量治理”，而不是“真实风险治理”。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果指标只剩下“高危多少个、严重多少个”，却没有结合镜像用途、服务暴露面、运行权限和依赖上下文，那么治理质量其实并不高。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三是把镜像上下文和运行时视角纳入判断链路&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全不应该只停留在静态包扫描，还应该结合：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像构成。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际运行组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可达攻击面。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;构建来源可信度。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修复路径是否可执行。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于 Kubernetes 场景尤其如此，因为很多问题并不是“镜像里有漏洞”本身，而是“漏洞出现在什么样的工作负载里”。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;写在最后&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对 Docker 和 Kubernetes 社区来说，这篇 Docker 官方文章的价值，不在于给出一个立刻可套用的工具答案，而在于指出了一个必须正视的趋势：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-weight: 700;&quot;&gt;当漏洞数据库的补充信息不再像过去那样稳定时，安全团队需要升级自己的判断方法。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你的团队今天还主要依赖“扫出多少 CVE、按多少分处理、报多少高危”来管理容器风险，那么现在可能正是一个重新校准方法的时候。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;你怎么看这次 NVD 补充策略变化？在你的团队里，漏洞治理更依赖评分，还是更依赖运行上下文判断？欢迎留言交流。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参考来源：Docker 官方博客《NIST Narrows the NVD: What Container Security Programs Should Reassess》&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;发布日期：2026 年 5 月 13 日&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;官网：https://www.docker.com/blog/&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240942189740685.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; title=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;677&quot; height=&quot;228&quot; style=&quot;width: 677px; height: 228px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Fri, 05 Jun 2026 09:40:06 +0800</pubDate></item><item><title>建议收藏：Kubernetes 生产环境 10 大高频故障排查实战</title><link>https://www.kubernetes.top/?id=460</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240949199515583.png&quot; alt=&quot;image.png&quot; width=&quot;793&quot; height=&quot;396&quot; style=&quot;width: 793px; height: 396px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Kubernetes 在测试环境里，往往表现得很稳定；可一旦进入生产环境，随着业务规模扩大、应用数量增多、节点运行时间拉长，各种问题就会陆续冒出来。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有些故障表面看只是一个&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265597747-0.06493791906759783&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Pod&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;起不来，背后却可能牵涉到调度器、容器运行时、网络、存储、DNS，甚至控制面本身。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;如果没有一套稳定的排查思路，遇到问题时就很容易陷入“到处看日志、四处改配置、越改越乱”的状态。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;其实，大多数 Kubernetes 问题都有比较固定的定位路径：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;先看状态，再看 Events；先缩小范围，再查日志；最后再回到配置本身。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文结合生产环境中的典型案例，整理出 10 个最常见的 Kubernetes 高频故障场景，覆盖：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Pod Pending&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Service 无法访问&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;镜像拉取失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;存储卷挂载异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;资源限制与驱逐&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;etcd 故障&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;DNS 解析异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;权限与安全上下文问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;如果你平时负责 Kubernetes 集群运维，这篇文章建议直接收藏，关键时刻真能省不少时间。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、先记住一条通用排障思路&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; visibility: visible; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;很多人排查 Kubernetes 故障时，上来就改 YAML，或者只盯着 Pod 状态不放。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;实际上，更高效的顺序应该是：&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）先看对象状态&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先搞清楚出问题的是谁：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 不通&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制面异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用命令：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get svc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）再看 describe 和 Events&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;绝大多数常见问题，都会在事件里留下线索。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;尤其是调度失败、挂载失败、探针失败、镜像拉取失败，先看 Events 往往比先翻日志更高效。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）再看相关组件日志&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果事件只能告诉你“失败了”，但原因仍然不够清楚，就继续下钻到组件：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kube-proxy&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）最后回到配置本身&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等故障范围缩小以后，再去核对：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标签和选择器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像地址&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;探针&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全上下文&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;网络策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这套方法很朴素，但真正在生产环境里非常有效。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、问题 1：Pod 一直处于 Pending 状态&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 创建后长时间停留在 Pending，始终没有进入 Running。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见场景&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;新部署的应用起不来&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扩容后副本仍调度失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;集群资源紧张时无法重新调度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pending 往往表示 Pod 还没有进入正常运行阶段。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最常见的原因主要有三类：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度器找不到可用节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 被污点、亲和性或资源约束挡住了&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 未成功绑定，导致 Pod 无法继续推进&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先看 Pod 详情&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点看 Events。例如：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Warning &amp;nbsp;FailedScheduling &amp;nbsp;default-scheduler &amp;nbsp;0/5 nodes are available: 1 Insufficient cpu, 3 node(s) had taints that the pod didn&amp;#39;t tolerate.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;再看节点资源&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{range .items[*]}{.metadata.name}{&amp;quot;\t&amp;quot;}{.status.allocatable.cpu}{&amp;quot; CPU\t&amp;quot;}{.status.allocatable.memory}{&amp;quot;\t&amp;quot;}{.status.conditions[?(@.type==&amp;quot;Ready&amp;quot;)].status}{&amp;quot;\n&amp;quot;}{end}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点关注 Allocatable，不要只看机器总资源。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查污点&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get node -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 PVC 状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）资源不足&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见报错：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Insufficient cpu&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Insufficient memory&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理方式：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;扩容节点&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 Pod 的 requests&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优化资源占用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理低优先级工作负载&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;128Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;100m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;256Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;200m&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）节点污点限制&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时处理可以移除污点：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl taint node &amp;lt;node-name&amp;gt; key=value:NoSchedule-&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更稳妥的方式是在 Pod 里增加容忍：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;tolerations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;key:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;operator:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Exists&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;effect:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;NoSchedule&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）PVC 绑定失败&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点检查：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass 是否存在&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PV / PVC 是否匹配&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI 驱动是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储后端是否可达&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -w&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;移除节点污点会改变整个节点的调度行为，操作前先确认该节点是否承担专用角色。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、问题 2：Pod 一直处于 CrashLoopBackOff 状态&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 能调度到节点，但容器启动后很快退出，并反复重启。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见场景&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;新版本上线后立即崩溃&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;依赖服务未就绪导致应用退出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查过严，容器还没启动完就被杀掉&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CrashLoopBackOff 的核心不是“起不来”，而是：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器启动了，但启动后很快崩了。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点看这 5 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;退出码&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;崩溃前日志&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动命令&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;外部依赖&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看退出信息&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.status.containerStatuses[*]}{&amp;quot;\n&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 20&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Last State&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看上一次崩溃日志&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; --previous&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看启动命令和环境变量&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].command}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].args}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].env}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看探针配置&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Liveness&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Readiness&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Startup&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试依赖连通性&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nc -zv &amp;lt;service-name&amp;gt; 3306&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nslookup &amp;lt;service-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）启动命令错误&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;/bin/sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;node app.js &amp;amp;&amp;amp; sleep infinity&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）依赖服务不可达&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据库、Redis、MQ 等依赖异常时，应用常常直接退出。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782265597748-0.24476311720581356&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;ConfigMap&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/ Secret 缺失&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get configmap -n &amp;lt;namespace&amp;gt; &amp;lt;configmap-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret -n &amp;lt;namespace&amp;gt; &amp;lt;secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）目录权限不足&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ls -la /data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）探针过早失败&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更合理的做法是给启动较慢的应用配置 startupProbe：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;8080&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -w&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ps aux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;回滚方案&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout undo deployment &amp;lt;deployment-name&amp;gt; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout status deployment &amp;lt;deployment-name&amp;gt; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、问题 3：Pod 无法通过 Service 访问&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 之间通过 Service 名称访问失败，curl 超时，或者 Ingress 流量无法转发到后端。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 通信链路通常可以拆成三层：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 解析&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 到后端的转发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端 Pod 端口监听&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认对象存在&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get svc -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从其他 Pod 发起访问测试&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;source-pod&amp;gt; -- curl -v http://&amp;lt;svc-name&amp;gt;:&amp;lt;port&amp;gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 Endpoints 和 EndpointSlice&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpoints -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpointslice -n &amp;lt;namespace&amp;gt; -l kubernetes.io/service-name=&amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe svc -n &amp;lt;namespace&amp;gt; &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果 Endpoints 为空，说明 Service 没匹配到后端。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 kube-proxy&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system -l k8s-app=kube-proxy -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;kube-proxy-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试 ClusterIP&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;source-pod&amp;gt; -- curl -v http://&amp;lt;cluster-ip&amp;gt;:&amp;lt;port&amp;gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;必要时到节点侧看规则&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;iptables -t nat -L -n | grep &amp;lt;cluster-ip&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ipvsadm -Ln&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）selector 不匹配&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）Pod 没 Ready&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 默认不会把未 Ready 的 Pod 加进后端。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）kube-proxy 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n kube-system -l k8s-app=kube-proxy&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）DNS 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- nslookup &amp;lt;svc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- cat /etc/resolv.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）NetworkPolicy 阻断&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get networkpolicy -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe networkpolicy -n &amp;lt;namespace&amp;gt; &amp;lt;policy-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重启 kube-proxy 和修改 NetworkPolicy 都可能影响业务流量，生产环境必须分批观察。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、问题 4：镜像拉取失败&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 调度成功，但镜像下载失败，状态显示 ImagePullBackOff 或 ErrImagePull。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这类问题通常集中在 4 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像地址写错&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tag 不存在&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;认证失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点到仓库网络或 TLS 异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看事件&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; | grep -A 15&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;Events&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点侧手动拉取测试&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crictl pull &amp;lt;registry&amp;gt;/&amp;lt;image&amp;gt;:&amp;lt;tag&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ctr -n k8s.io images pull &amp;lt;registry&amp;gt;/&amp;lt;image&amp;gt;:&amp;lt;tag&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查镜像仓库认证&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get secret -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe secret -n &amp;lt;namespace&amp;gt; &amp;lt;registry-secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查仓库网络与证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -I https://&amp;lt;registry&amp;gt;/v2/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）镜像地址或 tag 错误&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;最常见，也最容易忽略。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）认证凭据错误&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl create secret docker-registry &amp;lt;secret-name&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-server=&amp;lt;registry&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-username=&amp;lt;user&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-password=&amp;lt;password&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --docker-email=&amp;lt;email&amp;gt; \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 里引用：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;imagePullSecrets:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;lt;secret-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）TLS 证书不被信任&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;私有仓库常见问题是内部 CA 没有安装到节点信任链里。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点网络不通&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;例如 DNS 不通、防火墙阻断、代理配置缺失。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -n &amp;lt;namespace&amp;gt; --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除 Pod 前先确认副本数是否足够，避免直接影响线上流量。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、问题 5：Node 变成 NotReady&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点状态显示 NotReady，新 Pod 无法继续调度到该节点。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优先排查这 4 个方向：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet 是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;containerd 是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统资源是否耗尽&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点与 API Server 是否连通&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看节点状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe node &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get node &amp;lt;node-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.status.conditions[*]}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点检查 kubelet&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u kubelet -n 100 --no-pager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查系统资源&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;top -bn1 | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 containerd&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查与 API Server 连通性&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ping &amp;lt;api-server-ip&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -k https://&amp;lt;api-server-ip&amp;gt;:6443/healthz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 kubelet 证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/lib/kubelet/pki/kubelet-client-current.pem -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/lib/kubelet/pki/kubelet-server-current.pem -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）kubelet 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）磁盘或内存耗尽&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl --vacuum-size=500M&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crictl image prune&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）containerd 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart containerd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart kubelet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点到控制面网络不通&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点查路由、防火墙、安全组和 LB 配置。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离与恢复&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果一时修不好，先隔离节点：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl cordon &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl drain &amp;lt;node-name&amp;gt; --ignore-daemonsets --delete-emptydir-data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;恢复后再：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl uncordon &amp;lt;node-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;七、问题 6：存储卷挂载异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC 长期 Pending&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 启动后无法读写数据目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有状态服务无法正常挂载卷&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重点检查四层链路：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PV&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CSI 驱动 / 存储后端&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 PVC&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc -n &amp;lt;namespace&amp;gt; &amp;lt;pvc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 PV&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pv &amp;lt;pv-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 StorageClass&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get storageclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe storageclass &amp;lt;sc-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CSI&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system | grep csi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;csi-driver-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get csidrivers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;到节点检查挂载&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;登录节点执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mount | grep &amp;lt;pv-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h | grep &amp;lt;mount-path&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）StorageClass 不存在或 provisioner 错误&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）PVC 与 PV 不匹配&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）CSI 驱动异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete pod -n kube-system &amp;lt;csi-driver-pod&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）节点无法访问存储后端&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;比如 NFS：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;showmount -e &amp;lt;nfs-server&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5）目录权限不匹配&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;2000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证方法&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- sh -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;echo test &amp;gt; /data/test.txt &amp;amp;&amp;amp; cat /data/test.txt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除 PVC 可能导致数据永久丢失，生产环境必须先确认备份。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;八、问题 7：资源限制或节点压力导致 Pod 异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 被杀掉、被驱逐，或者根本创建失败。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见表现包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMKilled&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Evicted&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ResourceQuota 超限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这类问题要分开看：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOMKilled：通常是容器超过内存 limit&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Evicted：通常是节点压力触发驱逐&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建失败：通常是 quota / limitrange 限制&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get resourcequota -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe resourcequota -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get limitrange -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe limitrange -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top pod -n &amp;lt;namespace&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -n &amp;lt;namespace&amp;gt; --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）内存 limit 太小&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;512Mi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;1Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）节点资源压力&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是 Evicted，不要只盯 Pod，更要看节点层面的容量。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）命名空间配额耗尽&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可以适当调整：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;ResourceQuota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;increase-quota&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;hard:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;20&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;requests.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;40Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits.cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;40&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;limits.memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;80Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）LimitRange 默认限制不合理&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多应用一上线就 OOM，问题根本不在代码，而在命名空间默认 limit 太小。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;九、问题 8：etcd 集群故障&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl 请求超时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Server 不稳定&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;控制面整体异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 出问题时，表面看起来常常像“整个集群都怪怪的”。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这时优先确认：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 进程是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;endpoint 是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;member 是否完整&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘是否满了&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;证书是否过期&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 etcd 状态&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是静态 Pod：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl -n kube-system get pod -l component=etcd -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl -n kube-system logs &amp;lt;etcd-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果是 systemd：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u etcd -n 100 --no-pager&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看健康状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; endpoint health --cluster&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看成员状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; member list -w table&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看磁盘和证书&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /var/lib/etcd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /var/lib/etcd/*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openssl x509 -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; font-weight: bold; overflow-wrap: break-word !important;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/etc/kubernetes/pki/etcd/server.crt -noout -dates&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）磁盘空间不足&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可以先做 defrag：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl defrag --endpoints=https://127.0.0.1:2379 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cacert=/etc/kubernetes/pki/etcd/ca.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --cert=/etc/kubernetes/pki/etcd/server.crt \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --key=/etc/kubernetes/pki/etcd/server.key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）成员异常或网络分区&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;涉及 member remove 时一定要慎重。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）证书过期&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先用：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubeadm certs check-expiration&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认是否真是证书问题。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 是集群最核心的组件之一。涉及成员变更、证书续期、快照恢复前，务必先做备份。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份示例：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-$(date +%F-%H%M).db&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十、问题 9：DNS 解析异常&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 无法通过服务名访问目标服务，nslookup 超时或返回异常结果。&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 问题优先看三件事：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 是否健康&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 的 resolv.conf 是否正确&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;53 端口流量是否被拦截&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CoreDNS 状态&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n kube-system -l k8s-app=kube-dns -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs -n kube-system &amp;lt;coredns-pod&amp;gt; --tail=100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;起一个测试 Pod 做解析验证&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug --image=busybox -n default --restart=Never -- nslookup kubernetes.default&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl run -it --rm debug --image=busybox -n default --restart=Never -- nslookup &amp;lt;svc-name&amp;gt;.&amp;lt;namespace&amp;gt;.svc.cluster.local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看业务 Pod 的 resolv.conf&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- cat /etc/resolv.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看 CoreDNS 配置&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get configmap -n kube-system coredns -o yaml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看网络策略&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get networkpolicy -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）CoreDNS Pod 异常&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl rollout restart deployment coredns -n kube-system&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）上游 DNS 配置错误&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）Headless Service 结果与预期不一致&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;clusterIP: None 返回的是 Pod IP 列表，不是单个 VIP。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）NetworkPolicy 阻断 53 端口&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是生产环境里很常见的误伤点。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十一、问题 10：安全上下文导致权限不足&lt;/span&gt;&lt;/h1&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用报 Permission denied，常见表现包括：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;无法写目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;无法绑定低位端口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;某些系统调用被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查思路&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 Kubernetes 1.28 中，重点关注：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;securityContext&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod Security Admission&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SELinux / AppArmor / seccomp&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;宿主机目录权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/span&gt;&lt;/h2&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o yaml | grep -A 30 securityContext&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get ns &amp;lt;namespace&amp;gt; --show-labels&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- id&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #0086B3;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-it -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -- ls -la /data&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;节点侧检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;getenforce&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apparmor_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;seccomp 检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.securityContext.seccompProfile}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod -n &amp;lt;namespace&amp;gt; &amp;lt;pod-name&amp;gt; -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;{.spec.containers[*].securityContext.seccompProfile}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因与修复&lt;/span&gt;&lt;/h2&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1）非 root 用户无法写目录&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐修目录权限，而不是直接切 root：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;runAsUser:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;fsGroup:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #008080;&quot;&gt;1000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;initContainers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #990073;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;fix-permission&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;busybox&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;command:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;-c&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;chown -R 1000:1000 /data&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2）缺少能力绑定低位端口&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;securityContext:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;capabilities:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;drop:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;ALL&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased;&quot;&gt;add:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;quot;NET_BIND_SERVICE&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3）只读根文件系统与应用行为冲突&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px; outline: 0px; font-size: 1.38em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4）命名空间安全策略限制&lt;/span&gt;&lt;/h3&gt;&lt;h2 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.55em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险提示&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不要轻易把容器改成 privileged: true 或 runAsUser: 0，生产环境应尽量遵循最小权限原则。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十二、10 大高频问题排查矩阵&lt;/span&gt;&lt;/h1&gt;&lt;table width=&quot;549&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;首选排查命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-align: left; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见根因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod Pending&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;资源不足、污点、PVC 未绑定&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl logs --previous&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动命令错误、依赖不可达、探针失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Service 不通&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get endpoints&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;selector 不匹配、Pod 未 Ready、kube-proxy 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像不存在、认证失败、TLS/网络问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status kubelet&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubelet 异常、containerd 故障、磁盘满&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储卷异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pvc&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StorageClass/CSI/权限问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM / Evicted / 配额失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit 不合理、节点压力、Quota 超限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 故障&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcdctl endpoint health&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘满、证书过期、成员异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(250, 251, 252); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup&lt;/span&gt;&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+ CoreDNS 日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 异常、配置错误、策略阻断&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; background-color: rgb(255, 255, 255); border-top: 1px solid rgb(198, 203, 209);&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.2em 0.4em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 13.6px; color: rgb(55, 71, 79); background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; word-break: break-word; background-size: 20px 20px; white-space: pre-wrap; background-image: none;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;securityContext&lt;/span&gt;&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 6px 13px; outline: 0px; word-break: normal; hyphens: auto; border-color: rgb(223, 226, 229); max-width: 100%; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-wrap-mode: nowrap; overflow-wrap: break-word !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;runAsUser、capabilities、PSA 限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十三、建议长期保留的一份巡检清单&lt;/span&gt;&lt;/h1&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 1em; margin-bottom: 1em; padding: 9.5px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; text-wrap-mode: wrap; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0.5em; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: normal; -webkit-font-smoothing: antialiased; font-family: mononoki, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-size: 10.2px; background: none 0% 0% / 20px 20px rgb(248, 248, 248); border-radius: 5px; border: 0px; display: block; overflow: auto; word-break: initial; max-height: 979px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 节点健康&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get nodes -o wide&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl top nodes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 异常 Pod&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A | egrep -v&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;Running|Completed&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -A | grep -i Evicted&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 资源配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get resourcequota -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get limitrange -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 存储状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pvc -A&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 核心组件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pods -n kube-system&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #999988; font-style: italic;&quot;&gt;# 最近事件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get events -A --sort-by=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; -webkit-font-smoothing: antialiased; color: #DD1144;&quot;&gt;&amp;#39;.lastTimestamp&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果条件允许，建议同时对以下指标配置监控告警：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-bottom: 16px; padding: 0px 0px 0px 2em; outline: 0px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Node NotReady&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod 重启次数异常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pending Pod 数量&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PVC Pending 数量&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CoreDNS 错误率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;etcd 延迟与空间使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;镜像拉取失败次数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: content-box; text-wrap-mode: wrap; -webkit-font-smoothing: antialiased; height: 2px; border: 0px; background-color: rgb(234, 236, 239); color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;/&gt;&lt;h1 style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 24px 0px 16px; padding: 0px 0px 0.3em; outline: 0px; font-size: 1.75em; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Tahoma, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, &amp;quot;Source Han Sans&amp;quot;, &amp;quot;Source Han Serif&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; line-height: 1.25; color: rgb(36, 41, 46); border-bottom: 1px solid rgb(234, 236, 239); font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;十四、写在最后&lt;/span&gt;&lt;/h1&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Kubernetes 的问题之所以让人觉得“复杂”，很多时候并不是因为它真的无从下手，而是因为故障表象和真实根因之间隔了几层。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个 Pod 起不来，可能是资源问题；&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个 Service 不通，可能是 DNS、selector、探针，甚至网络策略；&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一次 API 超时，背后也可能不是 apiserver 本身，而是 etcd 已经开始出问题。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所以，排障最怕的不是问题复杂，而是没顺序。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;只要记住这条主线：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 16px; padding: 0px 1em; outline: 0px; border-left: 0.25em solid rgb(234, 236, 239); color: rgb(106, 115, 125); font-size: 16.25px; max-width: 100%; box-sizing: border-box; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; -webkit-font-smoothing: antialiased; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;先看状态，再看 Events；先缩小范围，再查日志；最后回到配置。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大部分生产环境里的常见故障，基本都能更快收敛。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 16px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果你也在维护 Kubernetes 集群，建议把这篇文章先收藏起来。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多问题平时看着不常见，但真到线上出故障的时候，能不能第一时间找到排查路径，差别会非常大。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;你在生产环境里踩过最离谱的 Kubernetes 坑是什么？欢迎留言聊聊。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); -webkit-font-smoothing: antialiased; color: rgb(36, 41, 46); font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Luxi Sans&amp;quot;, &amp;quot;DejaVu Sans&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Android Emoji&amp;quot;, EmojiSymbols; font-variant-ligatures: no-common-ligatures; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240952026945791.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;619&quot; height=&quot;218&quot; style=&quot;width: 619px; height: 218px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 15 May 2026 09:46:37 +0800</pubDate></item><item><title>打造生产级 Nginx 高性能体系：反向代理、负载均衡与缓存优化实践</title><link>https://www.kubernetes.top/?id=461</link><description>&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240955553662466.png&quot; alt=&quot;02f6b1a7c21f6bf92fb4ac06359e7d97.png&quot; width=&quot;793&quot; height=&quot;422&quot; style=&quot;width: 793px; height: 422px;&quot;/&gt;&lt;/section&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Nginx 1.26.x 是当前 mainline 分支的最新稳定线，在 HTTP/3 支持、动态模块加载和内存管理上相比 1.24.x 有明显改进。1.24.x 已进入维护模式，新项目直接选 1.26.x，旧项目建议在下次维护窗口升级。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;在现代微服务架构中，Nginx 承担的角色已远超传统 Web 服务器。它是流量入口的第一道关卡：接收外部请求、终止 TLS、执行负载均衡、缓存上游响应、转发到后端服务集群。一个配置不当的 Nginx 实例，即便后端服务性能再好，也会成为整个系统的瓶颈。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;高性能配置的核心矛盾在于：默认配置面向通用场景，而生产环境需要针对具体硬件、流量模式和业务特征做定向调优。worker 进程数、连接数上限、缓冲区大小、缓存策略——每一项参数背后都有对应的系统资源约束，盲目调大不会带来性能提升，反而可能引发内存压力或文件描述符耗尽。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Nginx 采用事件驱动的异步非阻塞架构，与 Apache 的 prefork/worker 多进程模型有本质区别：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;事件驱动模型&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：基于 epoll（Linux）/ kqueue（&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076718-0.8801488980747245&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;BSD&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;），单个 worker 进程可同时处理数万并发连接，不依赖线程切换&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;异步非阻塞 I/O&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：磁盘读写、网络 I/O 均不阻塞 worker 进程，配合&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;aio threads&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;可将文件 I/O 卸载到线程池&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低内存占用&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：每个连接消耗约 10-20KB 内存，10000 并发连接约占用 200MB，远低于线程模型&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;零拷贝传输&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;sendfile&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;&amp;nbsp;系统调用直接在内核态完成文件到网络的数据传输，绕过用户态缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模块化架构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：核心功能精简，通过编译时模块或动态模块扩展，避免加载不必要的功能&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：将外部 HTTP/HTTPS 请求转发到内网应用服务器，隐藏后端拓扑，统一入口管理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负载均衡&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：在多个后端实例间分发流量，支持轮询、加权、IP 哈希、最少连接等策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;静态资源服务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：直接服务 CSS/JS/图片等静态文件，性能远超应用服务器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：结合 Lua（&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076717-0.6466608981888033&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;OpenResty&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;）或 njs 模块实现认证、限流、路由等网关功能&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存加速&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：缓存上游响应，降低后端压力，提升响应速度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SSL 终止&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：集中处理 TLS 握手，后端服务使用明文 HTTP，简化证书管理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.4 环境要求&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;组件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本要求&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ubuntu 22.04+ / CentOS Stream 8+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CentOS 7 已 EOL，不建议新部署&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.26.x mainline&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.24.x stable 可用，1.22.x 及以下避免&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenSSL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.0+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;支持 TLS 1.3，Ubuntu 22.04 默认满足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4核+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程数建议与物理核心数一致&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存配置需预留足够内存，建议 8GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SSD，50GB+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache 路径建议独立挂载点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 编译安装与基础调优&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.1 编译参数选择&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;包管理器安装的 Nginx 通常缺少部分高性能模块，生产环境建议从源码编译以获得完整控制权。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/build-nginx.sh - Nginx 编译安装脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_VERSION=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1.26.2&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BUILD_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/tmp/nginx-build&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;INSTALL_PREFIX=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装编译依赖&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apt-get install -y \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; build-essential \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libpcre3-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libssl-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; zlib1g-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libgd-dev \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; libgeoip-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BUILD_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BUILD_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;wget&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;http://nginx.org/download/nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;nginx-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_VERSION}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./configure \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --prefix=/etc/nginx \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --sbin-path=/usr/sbin/nginx \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --modules-path=/usr/lib64/nginx/modules \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --conf-path=/etc/nginx/nginx.conf \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --error-log-path=/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --http-log-path=/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --pid-path=/var/run/nginx.pid \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-threads \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用线程池，支持 aio threads&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-file-aio \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 异步文件 I/O，大文件传输性能提升明显&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_v2_module \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP/2 支持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_v3_module \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP/3 / QUIC 支持（1.25.0+ 正式支持）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_ssl_module \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_realip_module \ &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 获取真实客户端 IP（CDN/代理场景必须）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_stub_status_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控状态页&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_gzip_static_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预压缩静态文件，避免每次请求重复压缩&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-http_cache_purge_module \&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓存主动清理（需第三方模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-stream \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP/UDP 代理（数据库代理、DNS 负载均衡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-stream_ssl_module \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-pcre-jit \ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# PCRE JIT 加速正则匹配，location 规则多时效果显著&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; --with-ld-opt=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;-Wl,-rpath,/usr/local/lib&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;make -j&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(nproc)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;make install&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.2 worker 进程与连接数配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 主配置文件全局段&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# auto 自动检测 CPU 核心数，等价于手动写核心数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 绑定 worker 到具体 CPU 核心可减少上下文切换，8核机器写 auto&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 单个 worker 可打开的最大文件描述符数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 必须 &amp;gt;= worker_connections * 2（每个连接占用2个fd：客户端+上游）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 错误日志级别：生产用 warn，调试用 debug（debug 会产生大量日志，影响性能）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /var/run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 动态模块加载（如需要）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;load_module modules/ngx_http_geoip_module.so;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 单 worker 最大并发连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 总并发 = worker_processes * worker_connections&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 4核机器设 16384，总并发约 65536&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 16384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 使用 epoll（Linux 最高效的 I/O 多路复用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 允许 worker 一次性接受所有新连接，而非逐个接受&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 高并发场景下减少系统调用次数，低流量场景意义不大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1.3&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076718-0.32301571315085775&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;内核参数调优&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 性能上限受内核参数约束，应用层配置再好也无法突破内核限制。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/sysctl.d/99-nginx-tuning.conf - 内核参数调优&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修改后执行 sysctl -p /etc/sysctl.d/99-nginx-tuning.conf 生效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP 连接队列长度，默认 128 远不够用，高并发场景必须调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.somaxconn = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_max_syn_backlog = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许 TIME_WAIT 状态的 socket 被新连接复用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 反向代理场景下大量短连接会产生 TIME_WAIT，不开启会导致端口耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_tw_reuse = 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统最大文件描述符数，必须大于 worker_rlimit_nofile * worker_processes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;fs.file-max = 1000000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 网卡接收队列长度，10Gbps 网卡建议调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.netdev_max_backlog = 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TCP 接收/发送缓冲区，影响大文件传输和高延迟链路性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.rmem_max = 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.core.wmem_max = 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_rmem = 4096 87380 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.tcp_wmem = 4096 65536 16777216&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 本地端口范围，反向代理向上游发起连接时使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 默认 32768-60999，约 28000 个端口，高并发场景可能不够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;net.ipv4.ip_local_port_range = 10000 65535&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用内核参数并验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sysctl -p /etc/sysctl.d/99-nginx-tuning.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证关键参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sysctl net.core.somaxconn net.ipv4.tcp_tw_reuse fs.file-max&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置系统级文件描述符限制（/etc/security/limits.conf）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx soft nofile 65536&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /etc/security/limits.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx hard nofile 65536&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /etc/security/limits.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 反向代理配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 upstream 配置与健康检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/upstream.conf - upstream 定义文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_api {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive 保持与上游的长连接池，避免每次请求重新建立 TCP 连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 值为连接池中保持的空闲连接数，不是最大连接数上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 后端是 HTTP/1.1 应用时，32-64 是合理起点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive_requests：单个长连接最多处理的请求数，防止连接老化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keepalive_timeout：空闲连接保持时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=2 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # backup 服务器：仅在所有主服务器不可用时启用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.14:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_static {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 静态资源服务器，使用最少连接策略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:80 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:80 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 proxy_pass 细节&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass 的 trailing slash 是最常见的配置错误来源。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;行为完全不同：前者会截断 location 前缀，后者保留完整 URI。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/proxy-detail.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 末尾有斜杠：/api/users -&amp;gt; http://backend/users（截断 /api 前缀）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 末尾无斜杠：/api/users -&amp;gt; http://backend/api/users（保留完整路径）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 必须传递 Host，否则后端无法识别虚拟主机&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 传递真实客户端 IP，后端日志和业务逻辑依赖此值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 使用 HTTP/1.1 与上游通信，keepalive 必须配合此设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 清除 Connection 头，防止 keep-alive 信息传递到上游导致连接管理混乱&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 连接超时：Nginx 与上游建立 TCP 连接的超时时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 内网服务设 5s 足够，超过说明上游有问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 读取超时：等待上游响应的超时时间（两次读操作之间的间隔）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 根据业务最慢接口设定，不是总响应时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 发送超时：向上游发送请求的超时时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_send_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓冲区配置：响应先缓冲到 Nginx，再发给客户端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 关闭缓冲（proxy_buffering off）适合 SSE/流式响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffering on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffer_size 16k; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 响应头缓冲区，通常 4k-16k 足够&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffers 8 32k; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 响应体缓冲区数量和大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_busy_buffers_size 64k; # 同时向客户端发送的最大缓冲量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 WebSocket 代理与长连接保持&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/websocket.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_upgrade $connection_upgrade {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;#39;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp;close;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 当客户端不发送 Upgrade 头时，Connection 设为 close&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 避免普通 HTTP 请求被错误地保持为长连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name ws.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /ws/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_ws;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # WebSocket 升级握手必须的头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Upgrade $http_upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection $connection_upgrade;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # WebSocket 连接通常长时间保持，读取超时需要设长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 或设为 0（永不超时），但要配合心跳机制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 3600s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 关闭缓冲，WebSocket 消息需要实时传递&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 gRPC 反向代理配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/grpc.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream grpc_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:50051;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:50051;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl http2; &amp;nbsp;# gRPC 依赖 HTTP/2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name grpc.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/grpc.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/grpc.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # grpc_pass 替代 proxy_pass，专用于 gRPC 协议&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; grpc_pass grpc://grpc_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # gRPC 错误处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; error_page 502 = /error502grpc;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location = /error502grpc {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; internal;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/grpc;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # gRPC 状态码：14 = UNAVAILABLE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header grpc-status 14;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header content-length 0;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 204;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 负载均衡策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 轮询、加权轮询与 ip_hash&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/lb-strategies.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 默认轮询：请求依次分发到每个 server，适合无状态服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream rr_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 加权轮询：按 weight 比例分发，适合服务器配置不均的场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 下例中 .11 处理 50% 流量，.12 和 .13 各处理 25%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream weighted_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# ip_hash：同一客户端 IP 始终路由到同一后端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 实现简单的会话保持，但存在热点问题（大量用户来自同一 NAT IP）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 不支持与 weight 同时使用（1.26.x 已支持，但行为需验证）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream iphash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ip_hash;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 least_conn 与一致性哈希&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/lb-advanced.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# least_conn：将请求发送到当前活跃连接数最少的 server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 适合请求处理时间差异大的场景（如混合快慢接口）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 比轮询更能避免慢请求堆积在某个 server 上&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream leastconn_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# hash：基于自定义 key 的一致性哈希&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 适合缓存场景：相同 URL 始终路由到同一后端，提高后端缓存命中率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# consistent 参数启用一致性哈希，server 增减时只有少量请求重新分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream hash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; hash $request_uri consistent;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 基于请求头的哈希（适合 API 网关按用户 ID 路由）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream user_hash_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; hash $http_x_user_id consistent;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 被动健康检查与主动健康检查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开源版 Nginx 只支持被动健康检查（请求失败后标记 server 不可用），主动健康检查是商业版 Nginx Plus 的功能。开源替代方案是&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx_upstream_check_module&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;第三方模块。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/health-check.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream backend_with_check {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # max_fails：在 fail_timeout 时间窗口内，失败次数达到此值则标记为不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # fail_timeout：不可用状态持续时间，同时也是统计失败次数的时间窗口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 上例：30秒内失败3次，则该 server 被下线30秒后重新尝试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 如果编译了 nginx_upstream_check_module，可配置主动健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# upstream backend_active_check {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; server 10.0.1.11:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; server 10.0.1.12:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check interval=3000 rise=2 fall=3 timeout=1000 type=http;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check_http_send &amp;quot;HEAD /health HTTP/1.0\r\n\r\n&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# &amp;nbsp; &amp;nbsp; check_http_expect_alive http_2xx http_3xx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.4 会话保持方案对比&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现方式&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;优点&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缺点&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ip_hash&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 IP 哈希&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置简单，无需后端改造&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NAT 环境下负载不均，server 下线时会话丢失&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;小规模、无 CDN 场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hash $cookie_session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cookie 哈希&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;比 ip_hash 更精准&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要客户端支持 Cookie&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;有登录态的 Web 应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sticky cookie（Plus）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 注入 Cookie&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;精确绑定，支持 server 下线迁移&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;商业版功能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业级有状态应用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;应用层共享 Session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Redis/Memcached&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;彻底无状态，水平扩展&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要改造应用代码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐方案，新项目首选&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 缓存优化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.1 proxy_cache 配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - http 段缓存路径定义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存路径配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # levels=1:2：两级目录结构，避免单目录文件过多影响文件系统性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # keys_zone=cache_main:100m：共享内存区名称和大小，100m 约存储 80万个 key&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # max_size=10g：缓存文件总大小上限，超出时 LRU 淘汰&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # inactive=60m：60分钟内未被访问的缓存自动删除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # use_temp_path=off：直接写入缓存目录，避免跨文件系统 rename 操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_main:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=10g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=60m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 第二个缓存区，用于静态资源（更大的 inactive 时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache_static&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_static:50m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=20g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=7d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.2 缓存策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-policy.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # API 接口缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓存 key 设计：包含 scheme、host、URI 和查询参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 如果接口有用户态，需要加入 Cookie 或 Authorization 头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 不同响应码的缓存时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 302 10m; &amp;nbsp;# 成功响应缓存10分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 404 缓存1分钟，防止穿透攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid any 30s; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 其他响应码缓存30秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 绕过缓存的条件：有 Cookie 或特定请求头时不使用缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # $cookie_session 非空时，认为是登录用户，不走缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_bypass $cookie_session $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_no_cache $cookie_session $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # stale 配置：上游故障时，允许使用过期缓存响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 这是提升可用性的关键配置，避免上游抖动直接影响用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 防止缓存击穿：同一 key 只允许一个请求回源，其他请求等待&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 在响应头中暴露缓存状态，便于调试（生产可关闭）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.3 静态文件缓存与 expires/&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266076719-0.13820082717780213&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;Cache-Control&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/static-cache.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name static.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; root /var/www/static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 带哈希指纹的静态资源（如 app.a1b2c3d4.js）可永久缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 浏览器缓存1年，CDN 缓存1年&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 1y;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 开启 gzip 静态压缩（需要预先生成 .gz 文件）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gzip_static on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # sendfile 零拷贝传输，静态文件服务必开&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tcp_nopush on; &amp;nbsp;# 配合 sendfile，批量发送响应头和文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTML 文件不缓存或短时缓存（内容会更新）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.html$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires -1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;no-cache, no-store, must-revalidate&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # API 响应：私有缓存，不允许 CDN 缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;private, no-cache&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.4 缓存预热与清理&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/cache-warm.sh - 缓存预热脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_HOST=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://127.0.0.1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;URL_LIST=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/scripts/warm-urls.txt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONCURRENCY=10 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 并发预热请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;warm_cache&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 通过 curl 访问触发缓存，-s 静默，-o /dev/null 丢弃响应体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; curl -s -o /dev/null -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%{http_code} %{url_effective}\n&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Host: www.example.com&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_HOST}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${url}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-f warm_cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 xargs 并发执行预热&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${URL_LIST}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| xargs -P&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${CONCURRENCY}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-I{} bash -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;warm_cache &amp;quot;$@&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;_ {}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Cache warm-up completed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-purge.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 需要编译 ngx_cache_purge 模块&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name cache-admin.internal;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制只有内网可以访问清理接口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 10.0.0.0/8;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; allow 192.168.0.0/16;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ /purge(/.*) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_purge cache_main &amp;quot;$scheme$host$1&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5 SSL/TLS 优化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.1 TLS 1.3 配置与密码套件选择&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/ssl-base.conf - SSL 基础配置（include 到各 server 块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 只启用 TLS 1.2 和 1.3，TLS 1.0/1.1 已被 RFC 8996 废弃&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_protocols TLSv1.2 TLSv1.3;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TLS 1.2 密码套件：优先 ECDHE（前向保密），禁用 RC4、3DES、MD5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 服务端优先选择密码套件（TLS 1.3 中此设置被忽略）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_prefer_server_ciphers off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# DH 参数文件，防止 Logjam 攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 生成命令：openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_dhparam /etc/nginx/ssl/dhparam.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 椭圆曲线选择：X25519 性能最好，P-256 兼容性最广&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_ecdh_curve X25519:prime256v1:secp384r1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.2 OCSP Stapling 与会话复用&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/ssl-performance.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# SSL 会话缓存：shared 在所有 worker 间共享，10m 约缓存 40000 个会话&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_cache shared:SSL:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_timeout 1d; &amp;nbsp;# 会话有效期1天，平衡安全性和性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TLS 1.3 会话票据（Session Tickets）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 允许客户端恢复会话，避免完整握手，减少延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 注意：多台 Nginx 需要共享相同的 ticket key，否则跨机器无法复用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_session_tickets off; &amp;nbsp;# 单机可开启，集群环境需要同步 key 或关闭&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# OCSP Stapling：Nginx 主动获取证书吊销状态并缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 客户端无需单独查询 OCSP 服务器，减少握手延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_stapling on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_stapling_verify on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 完整证书链（包含中间证书）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl_trusted_certificate /etc/nginx/ssl/chain.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# DNS 解析器，用于 OCSP 查询&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolver 8.8.8.8 8.8.4.4 valid=300s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolver_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.3 HTTP/2 与 HTTP/3(QUIC) 启用&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/http2-http3.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTTP/2：在 listen 指令中添加 http2 参数（Nginx 1.25.1+ 语法）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HTTP/3 / QUIC：基于 UDP，需要 1.25.0+ 且编译了 --with-http_v3_module&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 quic reuseport;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/www.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/www.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-performance.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 告知客户端支持 HTTP/3，浏览器下次请求会尝试 QUIC&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Alt-Svc &amp;#39;h3=&amp;quot;:443&amp;quot;; ma=86400&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # HSTS：强制浏览器使用 HTTPS，max-age 建议至少 6个月&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Strict-Transport-Security &amp;quot;max-age=15768000; includeSubDomains&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# HTTP 重定向到 HTTPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name www.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 301 https://$host$request_uri;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 完整的生产级 nginx.conf&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 生产级主配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;user nginx;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pid /var/run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; worker_connections 16384;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use epoll;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; multi_accept on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/mime.types;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/octet-stream;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 自定义日志格式，包含响应时间和上游信息，便于性能分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format main &amp;#39;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time uct=$upstream_connect_time &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=$upstream_header_time urt=$upstream_response_time&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log main buffer=32k flush=5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 零拷贝文件传输，静态文件服务必开&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile 开启后才有效：将多个小包合并成一个 TCP 包发送，减少网络开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁用 Nagle 算法，减少小包延迟，对实时性要求高的场景有效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端连接保持时间，65s 是经验值，CDN 场景可适当调长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 65;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 隐藏 Nginx 版本号，减少信息泄露&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端请求体大小限制，防止大文件上传耗尽内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 100m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_buffer_size 128k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 请求头缓冲区，大 Cookie 或 JWT Token 场景需要调大&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_buffer_size 4k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 16k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 1-9，6 是压缩率和 CPU 消耗的平衡点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_min_length 1024; &amp;nbsp; &amp;nbsp;# 小于 1KB 的响应不压缩，压缩收益低于开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types text/plain text/css text/xml text/javascript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;application/json application/javascript application/xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;application/rss+xml application/atom+xml image/svg+xml;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 线程池：将阻塞的文件 I/O 操作卸载到独立线程，避免阻塞 worker&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; thread_pool default threads=32 max_queue=65536;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存区域定义（供各 server 块引用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache_path /data/nginx/cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keys_zone=cache_main:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_size=10g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inactive=60m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/*.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 多站点反向代理 + 负载均衡完整配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/production.conf - 生产多站点配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API 服务集群&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream api_cluster {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_requests 1000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive_timeout 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.12:8080 weight=3 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.13:8080 weight=2 max_fails=3 fail_timeout=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.14:8080 backup;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 静态资源服务器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream static_cluster {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.21:80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.22:80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API 网关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 quic reuseport;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/api.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/api.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-performance.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Alt-Svc &amp;#39;h3=&amp;quot;:443&amp;quot;; ma=86400&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header Strict-Transport-Security &amp;quot;max-age=15768000; includeSubDomains&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Content-Type-Options nosniff always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Frame-Options DENY always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限流：每个 IP 每秒最多 100 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=api_limit:10m rate=100r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req zone=api_limit burst=200 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster/;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_connect_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_read_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 启用缓存（GET 请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 5m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_bypass $http_cache_control;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_no_cache $http_pragma $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 缓存命中状态头，便于调试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 健康检查端点不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 静态资源站点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http2 on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name static.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/static.example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/static.example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; include /etc/nginx/conf.d/ssl-base.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|svg)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://static_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_main;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 浏览器缓存：静态资源设置长期缓存，配合文件名哈希实现缓存破坏&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 预压缩文件优先（需要 gzip_static 模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gzip_static on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 缓存集群配置示例&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/cache-cluster.conf - 多级缓存配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 定义多个缓存区域，按内容类型分离&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path /data/nginx/cache/api&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keys_zone=cache_api:50m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_size=5g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; inactive=30m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path /data/nginx/cache/static&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; levels=1:2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keys_zone=cache_static:100m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_size=20g&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; inactive=7d&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; use_temp_path=off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 缓存锁：防止缓存击穿（多个请求同时穿透到上游）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock_age 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 后台更新：缓存过期时先返回旧内容，后台异步更新&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 避免缓存过期瞬间大量请求打到上游&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 上游不可用时使用过期缓存（降级策略）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name cache.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /api/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://api_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$scheme$host$uri$is_args$args&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 302 5m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 忽略上游的 Set-Cookie，防止带 Cookie 的响应被缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_ignore_headers Set-Cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_hide_header Set-Cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header X-Cache-Date $upstream_http_date;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /static/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://static_cluster;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache cache_static;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_key &amp;quot;$uri&amp;quot;; &amp;nbsp;# 静态资源 key 不含 scheme/host，跨域共享缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_valid 200 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_cache_use_stale error timeout updating;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expires 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add_header Cache-Control &amp;quot;public, max-age=2592000, immutable&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 性能优化&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/performance.conf - 性能优化配置集合&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile + tcp_nopush 组合：零拷贝传输 + 批量发送&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # sendfile 让内核直接将文件数据发送到网络，不经过用户态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # tcp_nodelay 禁用 Nagle 算法，减少小包延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 与 tcp_nopush 同时开启时，Nginx 会先积累数据（tcp_nopush），&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 连接进入 keepalive 状态后再启用 tcp_nodelay 刷新剩余数据&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tcp_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 线程池异步文件 I/O，避免磁盘读写阻塞 worker 进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 适合大文件下载场景，小文件场景收益不明显&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; aio threads=default;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; aio_write on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 直接 I/O：绕过操作系统页缓存，适合大文件且不需要重复读取的场景&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 小文件或频繁访问的文件不要开启，会降低性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # directio 512;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # open_file_cache：缓存文件描述符、文件大小和修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 避免每次请求都调用 stat() 系统调用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache max=10000 inactive=30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_valid 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_min_uses 2;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; open_file_cache_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Gzip 压缩：文本内容压缩率通常 60-80%，显著减少传输量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_comp_level 6;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_min_length 1024;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_vary on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_proxied any;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; gzip_types&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; text/plain text/css text/xml text/javascript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application/json application/javascript application/xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application/rss+xml application/atom+xml image/svg+xml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; font/truetype font/opentype application/vnd.ms-fontobject;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/security.conf - 安全加固配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 隐藏 Nginx 版本号，攻击者无法针对特定版本漏洞&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_tokens off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求方法，只允许 GET/POST/HEAD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; if ($request_method !~ ^(GET|POST|HEAD|PUT|DELETE|PATCH|OPTIONS)$) {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 405;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 防止点击劫持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Frame-Options SAMEORIGIN always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止 MIME 类型嗅探，防止 XSS 攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-Content-Type-Options nosniff always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # XSS 保护（现代浏览器已内置，但旧版浏览器需要此头）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; add_header X-XSS-Protection &amp;quot;1; mode=block&amp;quot; always;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求体大小，防止大文件上传耗尽内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_max_body_size 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限制请求头大小，防止 Header 注入攻击&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; large_client_header_buffers 4 8k;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 限流：防止暴力破解和 DDoS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req_zone $binary_remote_addr zone=login_limit:10m rate=5r/m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_conn_zone $binary_remote_addr zone=conn_limit:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /login {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=login_limit burst=10 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn conn_limit 5;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://backend_api;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止访问隐藏文件（.git、.env 等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ /\. {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; log_not_found off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 禁止访问备份文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~* \.(bak|conf|dist|fla|inc|ini|log|psd|sh|sql|swp)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 高可用配置（Keepalived + Nginx 双主）&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/keepalived/keepalived.conf - 主节点（192.168.1.11）配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vrrp_script check_nginx {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; script&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/scripts/check-nginx.sh&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; interval 2 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每2秒检查一次&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; weight -20 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查失败时优先级降低20，触发 VIP 漂移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; fall 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续失败2次才认为服务异常&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rise 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续成功2次才认为服务恢复&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vrrp_instance VI_1 {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; state MASTER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; interface eth0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; virtual_router_id 51&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; priority 100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主节点优先级高于备节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; advert_int 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; authentication {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auth_type PASS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auth_pass nginx_ha_2024&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; virtual_ipaddress {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 192.168.1.100/24 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# VIP，对外提供服务的 IP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; track_script {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; check_nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/check-nginx.sh - Nginx 健康检查脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Nginx 进程是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! pgrep -x nginx &amp;gt; /dev/null;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 尝试重启 Nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; systemctl start nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启后再次检查，失败则退出非零状态触发 VIP 漂移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; pgrep -x nginx &amp;gt; /dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 Nginx 是否能正常响应请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http_code=$(curl -s -o /dev/null -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%{http_code}&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;http://127.0.0.1/health)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${http_code}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 配置注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;末尾斜杠是最常见的配置错误：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;会截断 location 前缀，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass http://backend&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;则保留完整 URI。在 location 使用正则表达式时，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_pass&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;不能带 URI 部分（即不能有斜杠后的路径），否则 Nginx 会拒绝启动。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;设置的是单个 worker 的连接数上限，包含客户端连接和上游连接。作为反向代理时，每个客户端请求至少占用 2 个连接（客户端 + 上游），实际并发客户端数约为&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections / 2&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_path&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keys_zone&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;内存区只存储缓存 key 的索引，不存储缓存内容本身。100m 的 keys_zone 约能存储 80 万个 key，缓存内容存储在磁盘上。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.2 常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误现象&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务不可用或连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务状态，调整 proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504 Gateway Timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 proxy_read_timeout，或优化上游接口性能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;413 Request Entity Too Large&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体超过 client_max_body_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大 client_max_body_size 或在上游处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;499 Client Closed Request&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端在响应前断开连接&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通常是客户端超时，检查客户端超时设置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream timed out (110)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务负载，调整超时参数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;no live upstreams while connecting&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有上游节点不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查上游服务，调整 max_fails/fail_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections are not enough&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接数耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 worker_connections 和 worker_rlimit_nofile&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;open() failed (24: Too many open files)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件描述符耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增大 worker_rlimit_nofile 和系统 ulimit&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.3 兼容性问题&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP/3 (QUIC) 需要防火墙放行 UDP 443 端口，许多企业网络默认封锁 UDP，导致 HTTP/3 降级到 HTTP/2。&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Alt-Svc&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;响应头告知浏览器支持 HTTP/3，浏览器会在后续请求中尝试 QUIC，失败后自动回退，不影响功能。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http2 on&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;指令是 1.25.1 引入的新语法，旧版本使用&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;listen 443 ssl http2&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。两种语法不能混用，升级 Nginx 版本后需要统一迁移。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 故障排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.1 日志分析&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/nginx.conf - 自定义日志格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 详细日志格式，包含所有关键性能指标&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; log_format detailed &amp;#39;$remote_addr - $remote_user [$time_local] &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$request&amp;quot; $status $body_bytes_sent &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;&amp;quot;$http_referer&amp;quot; &amp;quot;$http_user_agent&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;rt=$request_time &amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 总请求处理时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uct=$upstream_connect_time &amp;#39; # 与上游建立连接时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;uht=$upstream_header_time &amp;#39; &amp;nbsp;# 收到上游响应头时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;urt=$upstream_response_time &amp;#39; # 上游响应总时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;cs=$upstream_cache_status &amp;#39; &amp;nbsp;# 缓存命中状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;ua=$upstream_addr&amp;#39;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 实际处理请求的上游地址&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 生产环境使用缓冲写入，减少磁盘 I/O&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; access_log /var/log/nginx/access.log detailed buffer=64k flush=10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 错误日志：warn 级别记录重要错误，不记录 notice/info 级别的噪音&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_log /var/log/nginx/error.log warn;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 常用日志分析命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计响应状态码分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $9}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort | uniq -c | sort -rn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 找出响应时间最慢的10个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $NF, $7}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计每分钟请求量（流量趋势）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | cut -d: -f1-3 | uniq -c&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 找出请求量最大的 IP（排查 DDoS）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/access.log | sort | uniq -c | sort -rn | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时监控错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error|crit|alert|emerg&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.2 常见问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;502 Bad Gateway 排查流程：&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认上游服务是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v http://10.0.1.11:8080/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Nginx 错误日志中的具体错误信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -100 /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;upstream&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查上游连接数是否耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 TCP 连接统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state established | grep :8080 | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查上游服务的文件描述符限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/$(pgrep -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;java&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)/limits | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;open files&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接数耗尽排查：&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 TIME_WAIT 连接数（过多说明短连接频繁）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state time-wait | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx worker 打开的文件描述符数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls /proc/$(pgrep nginx | head -1)/fd | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查系统文件描述符使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/sys/fs/file-nr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1.3 调试模式&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/debug.conf - 临时调试配置（生产环境用完立即删除）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 针对特定 IP 开启 debug 日志，避免全量 debug 影响性能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;error_log /var/log/nginx/debug.log debug;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;events {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; debug_connection 192.168.1.100; &amp;nbsp;# 只对此 IP 的连接输出 debug 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试配置文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看编译参数和模块列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -V 2&amp;gt;&amp;amp;1 | tr&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重载配置（不中断现有连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx 进程树&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时查看连接状态（需要 stub_status 模块）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://127.0.0.1/nginx_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 性能监控&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.1 stub_status 模块&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/status.conf - 监控状态页&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 127.0.0.1:8080; &amp;nbsp;# 只监听本地，不对外暴露&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name localhost;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /nginx_status {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stub_status;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 只允许本机和监控服务器访问&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; allow 10.0.1.0/24;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# stub_status 输出示例及含义&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Active connections: 291 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 当前活跃连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# server accepts handled requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;16630948 16630948 31070465 &amp;nbsp; # 总接受连接数 / 总处理连接数 / 总请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Reading: 6 Writing: 179 Waiting: 106&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Reading: 正在读取请求头的连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Writing: 正在向客户端发送响应的连接数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Waiting: keepalive 空闲连接数（等待下一个请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.2 Prometheus + nginx-exporter 监控&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 安装 nginx-prometheus-exporter&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v1.3.0/nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 exporter（读取 stub_status 并转换为 Prometheus 格式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./nginx-prometheus-exporter \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -nginx.scrape-uri=http://127.0.0.1:8080/nginx_status \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; -web.listen-address=:9113&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/prometheus/rules/nginx.yml - Prometheus 告警规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NginxHighActiveConnections&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nginx_connections_active&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Nginx 活跃连接数过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前活跃连接数&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，超过阈值 10000&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;NginxHighErrorRate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5xx 错误率超过 5%&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(nginx_http_requests_total{status=~&amp;quot;5..&amp;quot;}[5m])&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;rate(nginx_http_requests_total[5m])&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.05&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Nginx 5xx 错误率过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2.3 关键指标与告警阈值&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指标名称&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常范围&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;告警阈值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;活跃连接数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 5000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 10000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近 worker_connections 上限时需扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求处理时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 200ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 1000ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;P99 超过1秒需排查上游或缓存&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5xx 错误率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 0.1%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 1%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务异常的直接体现&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游响应时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 100ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 500ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游服务性能问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存命中率&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 50%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存策略需要优化&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接等待数(Waiting)&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;lt; 1000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;gt; 5000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive 连接过多，可能需要调小 keepalive_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 备份与恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 配置备份脚本&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/nginx-backup.sh - Nginx 配置备份脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/backups/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_CONF_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RETENTION_DAYS=30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TIMESTAMP=$(date +%Y%m%d_%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TIMESTAMP}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;backup_nginx_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 打包 Nginx 配置目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --exclude=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/ssl/*.key&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\ &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 私钥单独备份，不放在普通备份中&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份完成：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份大小：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(du -sh &amp;quot;${BACKUP_FILE}&amp;quot; | cut -f1)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;cleanup_old_backups&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除超过保留期的备份文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;nginx_conf_*.tar.gz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -mtime&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;+&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETENTION_DAYS}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;已清理&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETENTION_DAYS}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;天前的备份&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;verify_backup&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证备份文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;tar -tzf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_FILE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;备份验证通过&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;备份文件损坏！&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;backup_nginx_config&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;verify_backup&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cleanup_old_backups&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 18px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 灰度发布与配置回滚&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /opt/scripts/nginx-deploy.sh - 配置灰度发布脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;set&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-euo pipefail&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NGINX_CONF_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/opt/backups/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;deploy_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;new_config_dir=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;timestamp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timestamp=$(date +%Y%m%d_%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份当前配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; cp -r&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前配置已备份到：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 复制新配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${new_config_dir}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试新配置语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! nginx -t;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;新配置语法错误，回滚...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${BACKUP_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx_conf_before_deploy_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${timestamp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 热重载（不中断现有连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;配置部署成功，已热重载&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;rollback_config&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;backup_path=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;备份目录不存在：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rsync -av --delete&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${backup_path}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${NGINX_CONF_DIR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;nginx -t &amp;amp;&amp;amp; nginx -s reload;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;回滚成功&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;回滚失败，请手动检查配置&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;amp;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${1:-}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; deploy) &amp;nbsp; deploy_config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${2}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rollback) rollback_config&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${2}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; *) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;用法：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;{deploy &amp;lt;config_dir&amp;gt;|rollback &amp;lt;backup_dir&amp;gt;}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;esac&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes auto&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_cpu_affinity auto&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile 65536&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，三者配合才能充分利用多核并支撑高并发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内核参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;somaxconn&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcp_tw_reuse&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;file-max&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是必须调整的三个参数，不调整会在中等流量下触发瓶颈&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_http_version 1.1&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_set_header Connection &amp;quot;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是启用上游长连接的完整组合，缺一不可&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_use_stale&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置上游降级策略，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;防止缓存击穿，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_background_update&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;避免缓存过期时的流量尖刺&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TLS 优化&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：TLS 1.3 + OCSP Stapling + 会话缓存，三者叠加可将 TLS 握手延迟降低 50% 以上&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenResty / njs&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：在 Nginx 中嵌入 Lua 或 JavaScript 逻辑，实现 JWT 验证、动态路由、A/B 测试等 API 网关功能，无需引入独立网关组件&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx Unit&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Nginx 官方的应用服务器，支持动态配置（无需重载），可直接运行 Python/PHP/Node.js 应用，适合替代 uWSGI/Gunicorn&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;eBPF + Nginx&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 eBPF 在内核层面监控 Nginx 的网络行为，实现零侵入的性能分析和安全审计&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 官方文档 - 权威参考，指令说明以此为准&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 源码 - 理解内部实现的最直接途径&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx-prometheus-exporter - 官方 Prometheus 集成&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Mozilla SSL Configuration Generator - TLS 配置生成工具，覆盖主流浏览器兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 命令速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置测试与重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试配置文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -T &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试并输出完整配置（含 include 文件）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reload &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 热重载配置（不中断连接）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s reopen &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重新打开日志文件（日志切割后使用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s quit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 优雅停止（等待现有请求完成）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -s stop &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 立即停止&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl start nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl stop nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 停止&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl reload nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重载（等同于 nginx -s reload）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl status nginx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tail -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/error.log &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时查看错误日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nginx -V 2&amp;gt;&amp;amp;1 | tr&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看编译参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tn state established dst :80 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看到80端口的连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接统计摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://127.0.0.1/nginx_status&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 stub_status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 缓存管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find /data/nginx/cache -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;f | wc -l &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 统计缓存文件数量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /data/nginx/cache &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看缓存占用空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. 配置参数详解&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_processes&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;auto&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程数，auto 自动匹配 CPU 核数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_connections&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;512&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16384&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单 worker 最大连接数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker_rlimit_nofile&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统默认&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;65536&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;worker 进程文件描述符上限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;keepalive_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;75s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;65s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 keepalive 超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_connect_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与上游建立连接超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_read_timeout&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待上游响应超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1m&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10m-100m&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体大小限制&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gzip_comp_level&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;压缩级别，6 是性能与压缩率平衡点&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;proxy_cache_lock&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;off&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;on&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止缓存击穿&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;open_file_cache max&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10000&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件描述符缓存条目数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;C. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;术语&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解释&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Reverse Proxy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代表后端服务接收客户端请求，客户端不直接访问后端&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负载均衡&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Load Balancing&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将流量分发到多个后端实例，提升吞吐量和可用性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Upstream&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 转发请求的目标服务器或服务器组&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存击穿&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cache Breakdown&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;热点 key 过期瞬间大量请求同时穿透到上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存穿透&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Cache Penetration&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求不存在的数据，每次都穿透缓存打到上游&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;惊群效应&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Thundering Herd&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多个进程/线程同时被唤醒竞争同一资源&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;前向保密&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Forward Secrecy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;即使私钥泄露，历史会话数据也无法被解密&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OCSP 装订&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OCSP Stapling&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务端预先获取证书吊销状态并附在 TLS 握手中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;零拷贝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Zero-Copy&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据在内核态直接传输，不经过用户态缓冲区&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;事件驱动&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Event-Driven&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过事件通知机制处理 I/O，而非为每个连接分配线程&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240956216128456.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;587&quot; height=&quot;197&quot; style=&quot;width: 587px; height: 197px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 27 Apr 2026 09:54:34 +0800</pubDate></item><item><title>大模型服务稳定性实战：超时、限流、OOM 排查全攻略</title><link>https://www.kubernetes.top/?id=462</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240958392311012.jpg&quot; alt=&quot;916fd1300e1e453cb03fc3f82d4b65ab.jpg&quot; width=&quot;748&quot; height=&quot;386&quot; style=&quot;width: 748px; height: 386px;&quot;/&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; data-website=&quot;https://www.mdnice.com&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px 10px; outline: 0px; max-width: 100%; overflow-wrap: break-word; word-spacing: 0em; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !important;&quot;&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;一、概述&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 背景介绍&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;大模型服务上线后，最让运维头疼的不是部署——部署有文档照着走就行。真正折腾人的是上线之后各种花式报错：用户反馈&amp;quot;接口超时了&amp;quot;，告警群里跳出&amp;quot;GPU OOM&amp;quot;，API 日志里一堆 429 Too Many Requests。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这三类问题——超时、限流、OOM——占了大模型服务日常故障的 80% 以上。实测在一套跑了 Qwen/Qwen3.5-35B-A3B-FP8 的 vLLM 集群上，上线头两个月的 200 多次告警中，超时占 45%，OOM 占 30%，限流占 15%，其他杂项占 10%。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这篇文章把排查方法论和具体操作步骤都写清楚。不讲理论，直接给命令、给配置、给实际案例。每个错误类型从&amp;quot;看到什么现象&amp;quot;开始，到&amp;quot;怎么定位根因&amp;quot;，再到&amp;quot;怎么解决&amp;quot;，完整链路走一遍。&lt;/span&gt;&lt;/p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.2 技术特点&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;这篇文章的组织方式：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统化排错方法论&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：不是头痛医头脚痛医脚，而是建立一套从症状到根因的判断链&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;按错误类型分类&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：超时、限流、OOM、CUDA 错误、模型加载错误，每类独立成章&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;从症状到根因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：先看到什么，再查什么，最后改什么。每一步都给具体命令&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;覆盖多层排查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：客户端 → API 网关 → 推理引擎 → GPU/系统，逐层定位&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.3 适用场景&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 0.8.x 推理服务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：目前生产环境用得最多的推理引擎，本文重点覆盖&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TGI（Text Generation Inference）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：HuggingFace 出品，部分排查方法通用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Ollama&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：开发测试环境常用，OOM 问题最多&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关层&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Nginx、Envoy、Kong 等反向代理的超时和限流配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端调用层&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Python requests / aiohttp / OpenAI SDK 的超时处理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;二、详细步骤&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 报错分类体系&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的报错可以按照五大类来组织。先看清全局，再逐个击破。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务报错&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 超时类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TTFT 超时（首 token 延迟过高）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TPS 下降（生成速度变慢）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 连接超时（TCP 握手/HTTP 连接失败）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 网络超时（请求在网络层丢失）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 限流类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 429 Too Many Requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 推理引擎内部队列满&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── Token 配额耗尽&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── OOM 类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── GPU OOM（显存不足）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CPU OOM（主机内存不足）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 容器 OOM Killed（cgroup 限制触发）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── CUDA 错误类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CUDA OOM（和 GPU OOM 有区别）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── NCCL 通信错误（多卡场景）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── CUDA device-side assert&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── CUDA 版本不兼容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 模型加载类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── 权重文件损坏/校验失败&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── 显存不足无法加载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── safetensors 格式错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; └── 磁盘空间不足&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;下面逐一详解。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 超时问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时是最常见的问题，也是最容易被误判的。用户说&amp;quot;超时了&amp;quot;，可能是 TTFT 慢、可能是 TPS 低、可能是连接都建不上。第一步要区分到底是哪种超时。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.1 快速区分超时类型&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用 curl 测试端到端延迟，看各阶段耗时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -o /dev/null -s -w&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; DNS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_namelookup}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Connect: &amp;nbsp; &amp;nbsp;%{time_connect}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; TLS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_appconnect}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; TTFB: &amp;nbsp; &amp;nbsp; &amp;nbsp; %{time_starttransfer}s\n\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; Total: &amp;nbsp; &amp;nbsp; &amp;nbsp;%{time_total}s\n&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -X POST http://localhost:8000/v1/chat/completions \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;model&amp;quot;:&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;,&amp;quot;messages&amp;quot;:[{&amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;hello&amp;quot;}],&amp;quot;max_tokens&amp;quot;:50}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输出示例：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DNS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.001s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connect: &amp;nbsp; &amp;nbsp;0.002s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TLS: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0.000s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFB: &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.234s &amp;nbsp; &amp;nbsp; ← 这就是 TTFT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total: &amp;nbsp; &amp;nbsp; &amp;nbsp;3.456s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;判断规则：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connect &amp;gt; 1s → 连接超时，查网络&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFB &amp;gt; 5s → TTFT 超时，查推理引擎&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Total - TTFB 过大 → TPS 低，生成阶段慢&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求直接失败 → 看错误码，连接拒绝或超时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.2 TTFT 超时排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT（Time To First Token）是用户发出请求到收到第一个 token 的时间。这个阶段主要是 prefill（预填充），计算量和 prompt 长度成正比。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（vLLM 0.7.x，单卡 A100 80G，Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prompt 长度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT 正常值&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要关注&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要告警&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100-300ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;500ms+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;300-800ms&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.5s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1-3s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;16000 tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3-8s&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;15s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30s+&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266244509-0.8279014966153493&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;KV Cache&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;碎片化&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 用&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1782266244510-0.31788092422198266&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;PagedAttention&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;管理 KV Cache，但长时间运行后会产生碎片，导致新请求分配 KV Cache 变慢。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 vLLM 的 KV Cache 使用情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:gpu_cache_usage_perc&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm:gpu_cache_usage_perc 0.87&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超过 0.9 就要注意了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;gpu-memory-utilization&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;参数，给 KV Cache 更多空间，或者降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（最大并发请求数）。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长 Prompt Prefill 慢&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prefill 阶段的计算量和 prompt 长度的平方成正比（attention 计算）。一个 16K token 的 prompt 比 1K token 的 prompt 慢 16 倍不止。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控 prefill 耗时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:e2e_request_latency&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启用 chunked prefill（vLLM 0.7.x 默认启用）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对于超长 prompt，考虑拆分或摘要&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 算力不足&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同时跑了太多并发请求，GPU 被压满。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时看 GPU 利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi dmon -s u -d 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出字段说明：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# sm: SM 利用率（Streaming Multiprocessor）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# mem: 显存带宽利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# enc/dec: 编解码器利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看到 sm 持续 &amp;gt; 95% 说明 GPU 计算已经打满&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：横向扩容（加 GPU），或降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;限制并发。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调度延迟&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求在 vLLM 的 scheduler 队列中等待时间过长。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查等待队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:num_requests_waiting&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 waiting &amp;gt; 10，说明队列积压了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.3 TPS 下降排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TPS（Tokens Per Second）是生成阶段每秒输出的 token 数。TPS 下降意味着用户要等更长时间才能拿到完整回复。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（单卡 A100 80G，Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发数&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求 TPS&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总 TPS&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60-80&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;60-80&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求性能&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30-50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;300-500&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;batching 效果明显&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;15-25&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;750-1250&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接近饱和&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8-15&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;800-1500&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超过最优点，单请求体验下降&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Batch 队列满&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查当前 batch 中的请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:num_requests_running&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# running 接近 max-num-seqs 就说明 batch 满了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;显存不足触发 swap&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 支持将 KV Cache swap 到 CPU 内存，但 swap 后 TPS 会暴跌。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 swap 次数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/metrics 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm:cpu_cache_usage_perc&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 cpu_cache_usage &amp;gt; 0，说明在 swap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：降低&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，减少 KV Cache 需求。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 温度降频&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 在 85°C 以上会自动降频，TPS 直接打折。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常工作温度：60-80°C&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;gt; 83°C：开始降频&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;gt; 90°C：严重降频或关机保护&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：检查散热系统、风扇转速、机房温度。数据中心环境一般不会有这个问题，但用 RTX 4090 的工作站经常遇到。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NUMA 亲和性问题&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多路 CPU 服务器上，如果 vLLM 进程和 GPU 不在同一个 NUMA 节点，PCIe 传输走跨 NUMA 路径，带宽减半。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 GPU 所在 NUMA 节点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看进程的 NUMA 绑定&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;numactl -s&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 绑定到 GPU 所在 NUMA 节点启动 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;numactl --cpunodebind=0 --membind=0 python -m vllm.entrypoints.openai.api_server ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.4 连接超时排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;连接超时意味着请求根本没到推理引擎。排查路径是从客户端到服务端逐层检查。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第一步：检查服务端口是否在监听&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ss -tlnp | grep 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预期输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# LISTEN &amp;nbsp;0 &amp;nbsp;128 &amp;nbsp;0.0.0.0:8000 &amp;nbsp;0.0.0.0:* &amp;nbsp;users:((&amp;quot;python&amp;quot;,pid=12345,fd=7))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果没有输出，说明 vLLM 没启动或端口不对&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：检查防火墙&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;iptables -L -n | grep 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用 firewalld&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;firewall-cmd --list-all&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三步：检查网络连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从客户端机器测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;telnet &amp;lt;server_ip&amp;gt; 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nc -zv &amp;lt;server_ip&amp;gt; 8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第四步：如果通过反向代理，检查 Nginx/Envoy 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -I http://localhost:80/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看返回状态码和 upstream 信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 服务未就绪的常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 vLLM 进程是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vllm.entrypoints&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -v grep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果进程存在但端口没监听，说明还在加载模型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 vLLM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u vllm -f&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server -f 2&amp;gt;&amp;amp;1 | tail -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载中的典型日志：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Loading model weights...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Loading model weights took 45.23 seconds&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Uvicorn running on http://0.0.0.0:8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看到 Uvicorn running 才说明服务就绪&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2.5 超时参数调优指南&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的超时配置涉及三层：客户端、网关、推理引擎。三层要配合，否则会出现&amp;quot;客户端已经超时了，但服务端还在算&amp;quot;的资源浪费问题。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时链路示意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端超时 &amp;gt; 网关超时 &amp;gt; 推理引擎超时（应从外到内递减）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等等，这个逻辑是反过来的——外层的超时应该大于或等于内层，否则内层还没超时外层就断了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正确的配置：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推理引擎内部超时: 120s（最长允许执行时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx proxy_read_timeout: 150s（留 30s 缓冲）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;客户端 timeout: 180s（再留 30s 缓冲）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 超时参数&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 64 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --request-timeout 120 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 单请求最大处理时间（秒）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx 超时配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-proxy.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream vllm_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 127.0.0.1:8000;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 32;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name llm.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 客户端相关超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_body_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; client_header_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 代理相关超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s; &amp;nbsp; &amp;nbsp; # 连接后端的超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 发送请求到后端的超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 150s; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 等待后端响应的超时（要大于 vLLM 的 request-timeout）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # SSE（Server-Sent Events）支持，stream 模式必须&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_cache off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chunked_transfer_encoding on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Python 客户端超时配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client = openai.OpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://llm.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;not-needed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 读取超时（等待响应）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 写入超时（发送请求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接池超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 自动重试次数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# stream 模式下的超时配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;response = client.chat.completions.create(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; messages=[{&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;role&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;写一首诗&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; stream=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 限流问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.1 HTTP 429 Too Many Requests 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看到 429 状态码，先确认是哪一层返回的。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试请求，看响应头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -v -X POST http://localhost:8000/v1/chat/completions \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{&amp;quot;model&amp;quot;:&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;,&amp;quot;messages&amp;quot;:[{&amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;hi&amp;quot;}],&amp;quot;max_tokens&amp;quot;:10}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;^&amp;lt; (HTTP|X-|Retry|RateLimit)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键响应头：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Retry-After: 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 几秒后重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Limit: 100 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 速率上限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Remaining: 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; → 剩余配额&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# X-RateLimit-Reset: 1710300000 &amp;nbsp;→ 配额重置时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;判断限流来源：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应头特征&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;来源&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理方式&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;X-RateLimit-*&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;头&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整网关限流配置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;关键字&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 引擎&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整 vLLM 并发参数&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server: nginx&lt;/code&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Server: envoy&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;反向代理层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调整代理限流配置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;响应体包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;token quota&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Token 计费层&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;充值或联系管理员&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.2 vLLM 内部队列限制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 有几个参数直接控制了它能同时处理多少请求：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前运行的 vLLM 启动参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm | grep -v grep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键参数说明：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-seqs 256 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 最大同时处理的序列数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-batched-tokens 32768 : 每个 batch 最大 token 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-model-len 32768 &amp;nbsp; &amp;nbsp; : 单请求最大上下文长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs 调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个参数控制 vLLM 同时处理的最大请求数。设太小会限流，设太大会 OOM。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐计算公式：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs = 可用显存 / (平均 KV Cache per request)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 80G，gpu-memory-utilization=0.9，Qwen3.5-35B-A3B-FP8 模型占 18GB：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可用 KV Cache = 80 × 0.9 - 18 = 54 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;假设平均每请求用 200MB KV Cache（平均 context 2048 tokens）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs ≈ 54000 / 200 = 270&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实际要留安全裕量，建议设 200-256&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-batched-tokens 调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 这个参数限制每个调度周期中所有请求的 token 总数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设太小：GPU 利用率低，吞吐量差&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设太大：prefill 延迟高，因为一个长请求可能占满整个 batch&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推荐值：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 短对话场景（平均 &amp;lt; 2K tokens）：max-num-batched-tokens = 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 长文档场景（平均 &amp;gt; 4K tokens）：max-num-batched-tokens = 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# RAG 场景（prompt 长、response 短）：max-num-batched-tokens = 65536&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.3 Nginx 层限流配置&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-ratelimit.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 定义限流区域&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# rate=50r/s 表示每秒 50 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# zone=llm_limit:10m 表示用 10MB 内存存储状态（约能跟踪 16万个 IP）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $binary_remote_addr zone=llm_limit:10m rate=50r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 基于 API Key 的限流（更细粒度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_authorization $api_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;~Bearer (.+)&amp;quot; $1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $api_key zone=llm_key_limit:10m rate=20r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 允许突发 20 个请求，不延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=llm_limit burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 基于 API Key 的限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=llm_key_limit burst=10 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 限流时返回 429 而不是默认的 503&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.4 Token Bucket 机制说明&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限流最常用的算法是 Token Bucket（令牌桶），理解这个机制有助于调参：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;令牌桶工作原理：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1. 桶以固定速率 rate 填充令牌&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2. 桶最多容纳 burst 个令牌（突发容量）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3. 每个请求消耗一个令牌&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4. 桶空时，新请求被拒绝（返回 429）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例：rate=50r/s, burst=20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 正常情况：每秒稳定处理 50 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 突发情况：瞬间可处理 50+20=70 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 持续高压：稳定在 50r/s，超出的被 429&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3.5 限流配置调优建议&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate 建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;burst 建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内部 RAG 系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100r/s per IP&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;50&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户量小，单用户可能连续查询&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对外 API 服务&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10r/s per API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;20&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;防止单用户打爆&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;200r/s 全局&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;100&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后端处理能力的 80%&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发测试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;测试环境放开&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 OOM 问题排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM 是最头疼的问题，因为它通常导致服务直接挂掉，而且重启后如果不改配置还会继续挂。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.1 GPU OOM 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：vLLM 日志出现&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，服务崩溃或卡死。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步：看显存占用&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 实时监控显存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi -l 1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者更详细的显存分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free,utilization.gpu --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 0, NVIDIA A100-SXM4-80GB, 81920 MiB, 72448 MiB, 9472 MiB, 95 %&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 看每个进程的显存占用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 12345, python, 71680 MiB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步：检查 vLLM 的显存分配&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动日志中会打印显存分配信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU|memory|cache&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 典型输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: GPU 0: NVIDIA A100-SXM4-80GB (80 GiB)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Model weights: 18.2 GiB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: KV cache: 54.0 GiB (gpu_memory_utilization=0.9)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# INFO: Available KV cache blocks: 27648&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步：分析 OOM 原因&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存的构成：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总显存 = 模型权重 + KV Cache + 激活值 + CUDA 上下文 + 碎片&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A100 80GB 的典型分配（Qwen/Qwen3.5-35B-A3B-FP8）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 模型权重: &amp;nbsp;~18 GB（FP8 量化后）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; CUDA 上下文: ~2 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 可用空间: &amp;nbsp;~60 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gpu-memory-utilization=0.9 时：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; KV Cache: 60 × 0.9 = 54 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 预留: &amp;nbsp; &amp;nbsp; 60 × 0.1 = 6 GB（给激活值和碎片）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM 场景分析：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;典型日志&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型太大，显存装不下&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemoryError: CUDA out of memory. Tried to allocate 2.00 GiB&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 耗尽&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;No available memory for the request&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长对话 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单请求 context 超长&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Request exceeds max_model_len&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发高时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同时请求太多&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;All cache blocks are allocated&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步：解决方案&lt;/strong&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM — 模型太大&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 A：降低精度（如果模型支持）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --quantization fp8 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# FP8 量化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 B：多卡张量并行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --tensor-parallel-size 2 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用 2 张卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 方案 C：降低 gpu-memory-utilization&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.85 &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 0.9 降到 0.85&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运行时 OOM — KV Cache 不够&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 降低最大并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs 128 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 256 降到 128&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 降低最大上下文长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len 16384 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 32768 降到 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者两个都降&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs 128 --max-model-len 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长对话 OOM — 限制单请求长度&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vLLM 启动参数限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len 8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用层也要做限制，别完全依赖 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在 API 网关层截断超长请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.2 CPU OOM 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：服务器响应缓慢或被 OOM Killer 杀死，&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;中有&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Out of memory: Killed process&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;日志。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第一步：检查 OOM 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;oom\|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [123456.789] Out of memory: Killed process 12345 (python) total-vm:98765432kB, anon-rss:65432100kB, file-rss:1234kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 注意 anon-rss 就是进程实际使用的物理内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：检查当前内存状况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; total &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;used &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;free &amp;nbsp; &amp;nbsp; &amp;nbsp;shared &amp;nbsp;buff/cache &amp;nbsp; available&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Mem: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 125Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 98Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 2.1Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.2Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;25Gi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;24Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Swap: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0B&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三步：查看内存大户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux --sort=-%mem | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第四步：查看详细内存分配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat /proc/meminfo | grep -E&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;MemTotal|MemFree|MemAvailable|SwapTotal|SwapFree|Cached|Buffers&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU OOM 的常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型加载时的内存峰值&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 加载模型时需要先在 CPU 内存中读取权重文件，然后再传到 GPU。一个 35B 参数的 FP8 模型，CPU 侧需要约 35GB 内存。如果同时还跑了其他服务，很容易 OOM。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看模型文件大小（估算 CPU 内存需求）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /models/Qwen3.5-35B-A3B-FP8/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 预留 CPU 内存 = 模型文件大小 × 1.5 + 操作系统和其他服务需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokenizer 内存泄漏&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部分 tokenizer 在处理大量请求后会出现内存缓慢增长的问题。线上跑了 3 天后 CPU 内存从 20GB 涨到 45GB 就是这个坑。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控进程内存变化趋势&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(ps aux | grep &amp;#39;vllm&amp;#39; | grep -v grep | awk &amp;#39;{print $6}&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;KB&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep 60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm_mem_monitor.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决：定期重启 vLLM 服务（比如每天凌晨），或者升级到最新版本看是否修复。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;swap 未配置&lt;/strong&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 GPU 服务器经常不配 swap，内存一满就直接 OOM Kill。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时添加 swap（应急）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo fallocate -l 32G /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo chmod 600 /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo mkswap /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo swapon /swapfile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 永久生效&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/swapfile none swap sw 0 0&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| sudo tee -a /etc/fstab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但要注意：swap 会严重影响性能，只适合兜底，不能当常态。&lt;/span&gt;&lt;/p&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.3 容器 OOM Killed 排查&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;显示 OOMKilled。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod vllm-pod-xxxxx | grep -A5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Last State&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; Last State: &amp;nbsp; &amp;nbsp; Terminated&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Reason: &amp;nbsp; &amp;nbsp; &amp;nbsp; OOMKilled&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Exit Code: &amp;nbsp; &amp;nbsp;137&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Started: &amp;nbsp; &amp;nbsp; &amp;nbsp;Mon, 10 Mar 2026 14:00:00 +0800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; Finished: &amp;nbsp; &amp;nbsp; Mon, 10 Mar 2026 16:32:15 +0800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看容器内存限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get pod vllm-pod-xxxxx -o jsonpath=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{.spec.containers[*].resources}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.State.OOMKilled}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.HostConfig.Memory}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因：容器内存限制（resources.limits.memory）设得比实际需求小。&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存需求计算：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存 = CPU 内存（模型加载 + tokenizer + 请求缓冲）+ 系统开销&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实测 Qwen/Qwen3.5-35B-A3B-FP8 的 CPU 内存需求：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 模型加载峰值: ~35 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 运行时稳态: &amp;nbsp; ~20 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; tokenizer: &amp;nbsp; &amp;nbsp;~2 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 请求缓冲: &amp;nbsp; &amp;nbsp; ~3 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 系统开销: &amp;nbsp; &amp;nbsp; ~3 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 总计: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~63 GB（峰值）/ ~28 GB（稳态）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes Pod 资源配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 稳态需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;72Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 峰值需求 + 20% 缓冲&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run -d \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpus&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;quot;device=0&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory-swap=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --shm-size=8g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --name vllm-server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; vllm/vllm-openai:v0.7.6 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4.4 OOM 根因速查表&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 日志&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemoryError&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 gpu-memory-utilization / 减少 max-num-seqs&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Killed process&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | grep oom&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU 内存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加内存 / 加 swap / 减少并发&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Pod OOMKilled&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl describe pod&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存限制太小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大 resources.limits.memory&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;All cache blocks are allocated&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看 metrics&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 用完&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 max-num-seqs 或 max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存持续增长&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;持续监控 RSS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内存泄漏&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期重启 / 升级版本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启动时 OOM&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh model/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型太大&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用量化版本 / 多卡并行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5 其他常见错误&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.1 CUDA Error: out of memory vs GPU OOM&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;很多人分不清&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的区别。&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：PyTorch 层面的内存分配失败，通常是 KV Cache 或激活值分配不到显存。vLLM 通常能捕获这个错误并优雅降级（拒绝新请求，不会崩溃）。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：CUDA 驱动层面的错误，更底层。一旦出现，整个 CUDA context 可能损坏，需要重启进程。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果 CUDA context 损坏，需要重置 GPU&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --gpu-reset -i 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 注意：gpu-reset 会杀死该 GPU 上所有进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 先确认没有其他重要进程在用这张卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv -i 0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.2 CUDA Error: device-side assert triggered&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: CUDA error: device-side assert triggered&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个错误通常是模型推理过程中的数值异常（NaN/Inf）触发了 CUDA kernel 的 assert。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型权重文件损坏&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输入数据中有异常值&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;FP16 精度溢出&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排查步骤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查模型文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;from safetensors import safe_open&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;import os&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;model_dir = &amp;#39;/models/Qwen3.5-35B-A3B-FP8&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;for f in os.listdir(model_dir):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; if f.endswith(&amp;#39;.safetensors&amp;#39;):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with safe_open(os.path.join(model_dir, f), framework=&amp;#39;pt&amp;#39;) as sf:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for key in sf.keys():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tensor = sf.get_tensor(key)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if tensor.isnan().any() or tensor.isinf().any():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;WARNING: {f}/{key} contains NaN/Inf!&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;OK: {f}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; except Exception as e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f&amp;#39;ERROR: {f}: {e}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 启用 CUDA_LAUNCH_BLOCKING 获取精确堆栈&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA_LAUNCH_BLOCKING=1 python -m vllm.entrypoints.openai.api_server ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 如果是 FP16 溢出，尝试用 BF16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype bfloat16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.3 RuntimeError: NCCL communicator was aborted&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡推理（tensor parallel）时 NCCL 通信失败。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted on rank 1. Original reason: ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因和解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. GPU 之间的 NVLink/PCIe 通信故障&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 拓扑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. NCCL 版本和 CUDA 版本不匹配&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;import torch; print(torch.cuda.nccl.version())&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 进程间通信端口冲突&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 NCCL 使用不同端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;NCCL_SOCKET_IFNAME=eth0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;export&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;NCCL_IB_DISABLE=1 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 禁用 InfiniBand（如果没有 IB 网卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 共享内存不足&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 /dev/shm 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /dev/shm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Docker 环境需要加大 shm-size&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run --shm-size=8g ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# volumes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; - name: dshm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; emptyDir:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; medium: Memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; sizeLimit: 8Gi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.4 模型加载失败&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权重文件损坏&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查文件 hash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sha256sum /models/Qwen3.5-35B-A3B-FP8/*.safetensors&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 和 HuggingFace 上的 hash 对比&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果不一致，重新下载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用 huggingface-cli 下载（支持断点续传和校验）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;pip install huggingface_hub&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;huggingface-cli download Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-dir /models/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-dir-use-symlinks False&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘空间不足&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查模型目录所在磁盘空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /models/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型文件大小参考：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Qwen3.5-35B-A3B-FP8: &amp;nbsp;~35 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Qwen3-Coder-30B-A3B-FP8: ~30 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 加上 tokenizer 和配置文件，预留 40-50 GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理旧模型释放空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh /models/*/ &amp;nbsp;| sort -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;safetensors 格式错误&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证 safetensors 文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;from safetensors import safe_open&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;try:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; with safe_open(&amp;#39;/models/Qwen3.5-35B-A3B-FP8/model-00001-of-00008.safetensors&amp;#39;, framework=&amp;#39;pt&amp;#39;) as f:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&amp;#39;Keys:&amp;#39;, list(f.keys())[:5])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(&amp;#39;File is valid&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;except Exception as e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; print(f&amp;#39;File is corrupted: {e}&amp;#39;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.5.5 torch.cuda.OutOfMemoryError 具体处理&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这是最常见的 CUDA 错误，具体处理流程：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 完整的排查流程脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== GPU Memory Status ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=index,memory.total,memory.used,memory.free --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== GPU Processes ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== vLLM Config Check ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm | grep -v grep | sed&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;s/.*python/python/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Recent OOM Logs ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -f /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log | tail -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; journalctl -u vllm --since&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1 hour ago&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== System Memory ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Recommendation ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU_USED=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU_TOTAL=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USAGE_PCT=$((GPU_USED * 100 / GPU_TOTAL))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$USAGE_PCT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 95 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - CRITICAL&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Suggestions:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;1. Reduce --max-num-seqs&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;2. Reduce --max-model-len&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;3. Reduce --gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot; &amp;nbsp;4. Use tensor parallelism (--tensor-parallel-size 2)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;elif&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$USAGE_PCT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 85 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - WARNING&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Consider reducing max-num-seqs by 20%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU memory usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${USAGE_PCT}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;% - OK&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三、示例代码和配置&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 OOM 自动恢复脚本&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# vllm_watchdog.sh - vLLM OOM 自动恢复 + 告警&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 部署方式：systemd service 或 supervisor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;VLLM_CMD=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.88 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HEALTH_URL=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost:8000/health&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ALERT_WEBHOOK=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://alertmanager:9093/api/v1/alerts&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/log/vllm/watchdog.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAX_RESTARTS=5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RESTART_COUNT=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;COOLDOWN=60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date &amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tee -a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;send_alert&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;severity=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;message=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; curl -s -X POST&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ALERT_WEBHOOK&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -H&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;labels\&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;alertname\&amp;quot;: \&amp;quot;VLLMWatchdog\&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;severity\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$severity&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;instance\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(hostname)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;annotations\&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \&amp;quot;summary\&amp;quot;: \&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$message&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }]&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;ALERT [&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$severity&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$message&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;check_gpu_health&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 是否正常&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! nvidia-smi &amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU health check failed - nvidia-smi error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;temp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i 0)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$temp&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 90 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU temperature too high:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${temp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU temperature&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${temp}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C exceeds 90°C threshold&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;start_vllm&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Starting vLLM...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_CMD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;gt; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; VLLM_PID=$!&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM started with PID&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待服务就绪（模型加载需要时间）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;wait_count=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;local&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;max_wait=300 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多等 5 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$wait_count&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-lt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$max_wait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM service is ready&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait_count=$((wait_count + 2))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM failed to start within&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${max_wait}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主循环&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== vLLM Watchdog Started ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 GPU 健康&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! check_gpu_health;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU unhealthy, waiting for recovery...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;continue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 vLLM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;start_vllm;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RESTART_COUNT=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;info&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM service started successfully&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查循环&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-0&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程不存在了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM process&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;is gone&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查是否 OOM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dmesg | tail -20 | grep -qi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;oom.*&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;\|killed.*&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OOM detected!&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM OOM Killed, PID=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, restarting...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM exited unexpectedly&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;warning&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM process died, PID=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, restarting...&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;break&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HTTP 健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! curl -s --max-time 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Health check failed, checking process...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;! curl -s --max-time 10&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HEALTH_URL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Health check failed twice, killing vLLM&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;warning&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM health check failed, restarting...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;kill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-9&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$VLLM_PID&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sleep 5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;break&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重启次数限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; RESTART_COUNT=$((RESTART_COUNT + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$RESTART_COUNT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-ge&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; send_alert&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;critical&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;vLLM exceeded max restarts (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;), giving up&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Max restarts reached, exiting watchdog&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Restarting in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${COOLDOWN}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$RESTART_COUNT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MAX_RESTARTS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; sleep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$COOLDOWN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配套的 systemd service：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/systemd/system/vllm-watchdog.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Description=vLLM Watchdog Service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;After=network.target nvidia-persistenced.service&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Type=simple&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;User=root&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ExecStart=/opt/scripts/vllm_watchdog.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Restart=on-failure&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RestartSec=30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StandardOutput=journal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;StandardError=journal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl daemon-reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl start vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl status vllm-watchdog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;journalctl -u vllm-watchdog -f&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 限流配置模板&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Nginx rate_limit 完整模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# /etc/nginx/conf.d/llm-gateway.conf&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 限流配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $binary_remote_addr zone=per_ip:10m rate=30r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $api_key zone=per_key:10m rate=10r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_conn_zone $binary_remote_addr zone=per_ip_conn:10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# API Key 提取&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $http_authorization $api_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default &amp;quot;anonymous&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;~*Bearer\s+(.+)&amp;quot; $1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求大小限制（防止超长 prompt）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client_max_body_size 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;upstream vllm_servers {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.10:8000 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server 10.0.1.11:8000 weight=1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; keepalive 64;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name llm-api.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate /etc/nginx/ssl/cert.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ssl_certificate_key /etc/nginx/ssl/key.pem;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 全局超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_connect_timeout 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_send_timeout 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_read_timeout 180s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # SSE 支持&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_buffering off;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Chat Completions（最常用，重点限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_key burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn per_ip_conn 10; &amp;nbsp; &amp;nbsp;# 单 IP 最大 10 个并发连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_conn_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Completions&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=20 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_key burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Connection &amp;#39;&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Embeddings（计算量小，可以放宽）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/embeddings {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req zone=per_ip burst=50 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limit_req_status 429;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Models list（不限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /v1/models {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # Health check（不限流）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location /health {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://vllm_servers;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 自定义 429 响应体（符合 OpenAI API 格式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_page 429 @rate_limited;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; location @rate_limited {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 429 &amp;#39;{&amp;quot;error&amp;quot;:{&amp;quot;message&amp;quot;:&amp;quot;Rate limit exceeded. Please retry after a short wait.&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;rate_limit_error&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;rate_limit_exceeded&amp;quot;}}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 参数调优配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 中等负载配置（单卡 A100 80G，Qwen3.5-35B-A3B-FP8）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.88 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 高吞吐配置（牺牲单请求延迟换总吞吐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.92 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 512 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 65536 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 8192 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 低延迟配置（牺牲吞吐换单请求速度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;python -m vllm.entrypoints.openai.api_server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --host 0.0.0.0 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --port 8000 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --dtype auto \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.85 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 32 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-batched-tokens 8192 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 32768 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 超时参数调优配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三层超时的完整配置模板：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# client_config.py - Python 客户端最佳配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;httpx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 标准配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;client = openai.OpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;https://llm-api.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;your-api-key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http_client=httpx.Client(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limits=httpx.Limits(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_keepalive_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive_expiry=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 异步客户端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;async_client = openai.AsyncOpenAI(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; base_url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;https://llm-api.example.com/v1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; api_key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;your-api-key&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; timeout=openai.Timeout(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connect=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; read=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;180.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pool=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; http_client=httpx.AsyncClient(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; limits=httpx.Limits(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_keepalive_connections=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive_expiry=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 带重试和降级的调用封装&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;time&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;call_llm_with_fallback&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; messages: list,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: str =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2048&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_retries: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; fallback_model: str =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-&amp;gt; str:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;带重试和降级的 LLM 调用&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; last_error =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;None&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;range(max_retries):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;try&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; response = client.chat.completions.create(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=model,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; messages=messages,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=max_tokens,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;response.choices[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;].message.content&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.RateLimitError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 429 限流，等待后重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retry_after = int(e.response.headers.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Retry-After&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Rate limited, retry after&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{retry_after}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(retry_after)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.APITimeoutError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超时，指数退避重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait_time =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;** attempt&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Timeout, retry after&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{wait_time}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(wait_time)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.APIConnectionError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连接错误，快速重试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Connection error, retry (attempt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{attempt +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;):&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{e}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;openai.InternalServerError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 500 错误，可能是 OOM，切换备用模型&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Server error:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{e}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fallback_model&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;and&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;model != fallback_model:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.info(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Falling back to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{fallback_model}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model = fallback_model&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_error = e&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 所有重试失败&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;All retries failed:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{last_error}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;raise&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;last_error&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 案例 1：生产环境 GPU OOM 完整排查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;时间线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026年2月15日，周六凌晨 3 点，告警群收到：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[CRITICAL] vLLM service down on gpu-server-03&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Process exited with code 137 (OOM Killed)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查过程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:05 - 登录服务器，确认服务状态&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssh gpu-server-03&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 没有 vLLM 进程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 docker 状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker ps -a | grep vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# STATUS: Exited (137) 3 minutes ago&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确认是 OOM&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker inspect vllm-server --format=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{{.State.OOMKilled}}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# true&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:08 - 查看系统日志确认 OOM 详情&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dmesg | tail -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [Sat Feb 15 02:58:32 2026] oom-kill: constraint=CONSTRAINT_MEMCG, ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [Sat Feb 15 02:58:32 2026] Memory cgroup out of memory: Killed process 28456 (python)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; total-vm:156789012kB, anon-rss:73400320kB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 73GB RSS，容器限制是 72GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:10 - 查看 GPU 显存（此时 GPU 应该已释放）&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 0: A100 80GB, 0MiB / 81920MiB used&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常，进程已经死了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:12 - 查看 vLLM 日志，找 OOM 前的线索&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | tail -100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 关键日志：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:10] INFO: Received request cmpl-abc123, prompt_tokens=28672, max_tokens=4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:11] INFO: Received request cmpl-abc124, prompt_tokens=31000, max_tokens=2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:55:12] WARNING: Preempting 3 sequences due to insufficient KV cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:57:45] INFO: Received request cmpl-abc189, prompt_tokens=30500, max_tokens=8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:58:30] ERROR: torch.cuda.OutOfMemoryError: CUDA out of memory&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# [02:58:31] CRITICAL: Fatal error, shutting down&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:15 - 定位根因&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;凌晨 2:55-2:58 期间，大量超长 prompt 请求涌入。这些请求的 prompt 长度都在 28K-31K tokens，接近&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len=32768&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的上限。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;查看启动参数：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker logs vllm-server 2&amp;gt;&amp;amp;1 | head -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-model-len 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --max-num-seqs 256&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# --gpu-memory-utilization 0.9&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题出在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len=32768&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;和&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-num-seqs=256&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;的组合。虽然平时大部分请求的 prompt 都在 2K-4K，KV Cache 足够。但凌晨有个批量任务在跑长文档摘要，prompt 长度 30K+，每个请求消耗的 KV Cache 是平时的 10 倍。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常请求 KV Cache: 2K tokens × 每 token 约 0.8MB = 1.6MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长文档请求 KV Cache: 30K tokens × 每 token 约 0.8MB = 24MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 总量: 54GB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;正常情况 256 并发: 256 × 1.6MB = 410MB，绰绰有余&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;长文档 30 并发: 30 × 24MB = 720MB，也没问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但如果 200 个长文档并发: 200 × 24MB = 4.8GB...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等等，不对。重新算：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Qwen3.5-35B-A3B-FP8，FP8 量化，KV Cache 每 token:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;= num_layers × 2 × num_heads × head_dim × 2 bytes(FP16 KV cache)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;= 64 × 2 × 8 × 128 × 2 = 262,144 bytes ≈ 0.25 MB/token&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30K prompt: 30000 × 0.25MB = 7.5GB per request&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;如果同时来了 8 个这样的请求: 8 × 7.5 = 60GB &amp;gt; 54GB 可用 KV Cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;根因确认：批量长文档任务同时发起 8+ 个 30K token 的请求，KV Cache 总需求超过可用显存。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:25 - 修复和重启&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 临时方案：降低 max-model-len，限制单请求长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run -d \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpus&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;&amp;quot;device=0&amp;quot;&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --memory=72g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --shm-size=8g \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --name vllm-server \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; vllm/vllm-openai:v0.7.6 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --model Qwen/Qwen3.5-35B-A3B-FP8 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --gpu-memory-utilization 0.9 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-num-seqs 200 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --max-model-len 16384 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 32768 降到 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证服务启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sleep 120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl http://localhost:8000/v1/models&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 正常返回模型列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;03:40 - 长期方案（第二天工作日处理）&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务改为排队执行，不并发&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关增加 prompt 长度检查，超过 16K 的走专用队列&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器内存限制从 72G 调到 96G&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加 KV Cache 水位监控告警&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 案例 2：间歇性超时根因定位&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题现象&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每天下午 2:00-2:30，API 超时率从 0.1% 飙到 15%。其他时间段正常。持续了一周。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查过程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步，确认超时模式&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 Prometheus 拉数据，按小时统计超时率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;http://prometheus:9090/api/v1/query_range&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;query=sum(rate(vllm_request_failure_total{error=&amp;quot;timeout&amp;quot;}[5m])) / sum(rate(vllm_request_success_total[5m])) * 100&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;start=2026-03-06T00:00:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;end=2026-03-12T23:59:59Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;step=300&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| python -m json.tool&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认了每天 14:00-14:30 有明显的超时高峰。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步，看这个时段的 GPU 指标&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 利用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl -s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;http://prometheus:9090/api/v1/query_range&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;query=nvidia_gpu_utilization{gpu=&amp;quot;0&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;start=2026-03-12T13:50:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;end=2026-03-12T14:40:00Z&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; --data-urlencode&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;step=30&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 利用率在 14:00 从 60% 突然飙到 100% 并持续 30 分钟。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步，看请求量&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# QPS 变化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:00 之前：稳定 30 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:00-14:30：飙到 150 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 14:30 之后：回落到 30 QPS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;QPS 突增 5 倍，GPU 被打满，正常请求排不上队导致超时。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步，定位请求来源&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Nginx access log，按来源 IP 统计 14:00-14:30 的请求量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;$4 ~ /12\/Mar\/2026:14:0/ || $4 ~ /12\/Mar\/2026:14:1/ || $4 ~ /12\/Mar\/2026:14:2/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; /var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/nginx/llm-access.log | \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| sort | uniq -c | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3847 10.0.2.55&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3201 10.0.2.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;245 10.0.3.12&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp;189 10.0.3.15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# &amp;nbsp; ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.0.2.55 和 10.0.2.56 贡献了超过 90% 的请求。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五步，找到元凶&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看这两个 IP 是什么服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup 10.0.2.55&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-01.internal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nslookup 10.0.2.56&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-02.internal&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是批量处理服务。查看它们的 crontab：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssh batch-worker-01&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;crontab -l&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 0 14 * * * /opt/scripts/daily_summary.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每天下午 2 点，两台批量处理服务器同时启动日报摘要任务，对 1000+ 篇文章做摘要，并发发送请求到 LLM 服务。瞬间打满了推理引擎。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务错峰执行&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改 crontab，两台机器错开 30 分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-01&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;0 2 * * * /opt/scripts/daily_summary.sh &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改到凌晨 2 点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# batch-worker-02&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 2 * * * /opt/scripts/daily_summary.sh &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 改到凌晨 2:30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;批量任务增加并发限制和限速&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# daily_summary.py 增加限速&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;aiohttp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CONCURRENCY =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多 5 个并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RATE_LIMIT =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每秒最多 10 个请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;semaphore = asyncio.Semaphore(CONCURRENCY)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;summarize_article&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(session, article)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;with&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;semaphore:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio.sleep(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/ RATE_LIMIT) &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 简单限速&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;with&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;session.post(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://llm-api.example.com/v1/chat/completions&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; json={&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;messages&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: [{&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;role&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Summarize:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{article}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;max_tokens&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeout=aiohttp.ClientTimeout(total=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;120&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;as&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.status ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;429&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retry_after = int(resp.headers.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Retry-After&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;asyncio.sleep(retry_after)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重试逻辑...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;await&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.json()&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API 网关增加批量任务专用限流&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 批量任务 IP 段单独限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;geo $is_batch_worker {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default 0;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 10.0.2.0/24 1;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;map $is_batch_worker $batch_limit_key {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 0 &amp;quot;&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; 1 $binary_remote_addr;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;limit_req_zone $batch_limit_key zone=batch_limit:1m rate=10r/s;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /v1/chat/completions {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; limit_req zone=batch_limit burst=5 nodelay;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # ... 其他配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修复后超时率降到 0.05% 以下，连续跑了一个月没再出现。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;四、最佳实践和注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 最佳实践&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.1 预防性配置清单&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署大模型服务前，过一遍这个清单：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# pre_deploy_check.sh - 部署前检查脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Pre-deployment Checklist ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. GPU 驱动版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[1] GPU Driver: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DRIVER=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -1)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[[ $(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;= 560&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| bc -l 2&amp;gt;/dev/null ||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;) ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;]] || [[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;560&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;]];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;FAIL (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$DRIVER&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt; 560)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. CUDA 版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[2] CUDA Version: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA=$(nvcc --version 2&amp;gt;/dev/null | grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;release&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $5}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tr -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$CUDA&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 显存大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[3] GPU Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi --query-gpu=name,memory.total --format=csv,noheader&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. CPU 内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[4] System Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;free -h | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;/Mem:/{print $2}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 磁盘空间（模型目录）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[5] Model Dir Space: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /models/ | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;NR==2{print $4, &amp;quot;available&amp;quot;}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 模型文件完整性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[6] Model Files: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MODEL_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/models/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/config.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;] &amp;amp;&amp;amp; [ -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/tokenizer.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; SAFETENSORS=$(ls&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MODEL_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/*.safetensors 2&amp;gt;/dev/null | wc -l)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$SAFETENSORS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;safetensors files)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;FAIL (missing config/tokenizer)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 7. Docker 版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[7] Docker: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker --version 2&amp;gt;/dev/null | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 8. 网络端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[8] Port 8000: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ss -tlnp | grep -q&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;:8000&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;IN USE (conflict!)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Available&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 9. /dev/shm 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-n&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[9] Shared Memory: &amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;df -h /dev/shm | awk&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;NR==2{print $2}&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 10. NUMA 拓扑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;[10] NUMA Topology:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nvidia-smi topo -m 2&amp;gt;/dev/null | head -5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== Check Complete ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.2 错误信息脱敏&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 API 不能把内部错误信息直接暴露给客户端。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Nginx 配置：拦截并替换错误响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location /v1/ {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_pass http://vllm_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 拦截 500 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; proxy_intercept_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; error_page 500 502 503 504 @internal_error;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;location @internal_error {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; default_type application/json;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; return 500 &amp;#39;{&amp;quot;error&amp;quot;:{&amp;quot;message&amp;quot;:&amp;quot;Internal server error. Please retry later.&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;server_error&amp;quot;,&amp;quot;code&amp;quot;:&amp;quot;internal_error&amp;quot;}}&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Python API 层面的错误脱敏&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fastapi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;FastAPI, HTTPException&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;fastapi.responses&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;traceback&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;app = FastAPI()&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;@app.exception_handler(Exception)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;global_exception_handler&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(request, exc)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 内部记录完整错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; logger.error(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Unhandled exception:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{traceback.format_exc()}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 返回给客户端的脱敏信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;CUDA&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc):&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;503&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Service temporarily unavailable. Please retry.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;server_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;elif&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;str(exc).lower():&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;504&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Request timeout. Please reduce input length or retry.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;JSONResponse(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status_code=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;500&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content={&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Internal server error.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;server_error&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.3 故障自愈机制&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;健康检查 + 自动重启 + 优雅降级的三层防护：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Kubernetes 健康检查配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;apiVersion:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;apps/v1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;kind:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;Deployment&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;metadata:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm-server&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;replicas:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;template:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;spec:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;containers:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm/vllm-openai:v0.7.6&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;args:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--model&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--gpu-memory-utilization&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;0.88&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;--max-num-seqs&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 存活探针：检测进程是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;livenessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载需要时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续 3 次失败则重启&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 就绪探针：检测服务是否准备好接收流量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;readinessProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;300&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;timeoutSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 连续 2 次失败则从 Service 摘除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动探针：加载模型的等待时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;startupProbe:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;httpGet:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;path:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;/health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;port:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;8000&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;initialDelaySeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;60&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;periodSeconds:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;10&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;failureThreshold:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最多等 60 + 30×10 = 360 秒&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;resources:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;requests:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;32Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;limits:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;memory:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;96Gi&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;cpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;nvidia.com/gpu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1.4 Graceful Degradation 策略&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当主模型不可用时，自动切换到轻量级模型：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# graceful_degradation.py&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;time&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;logging&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;from&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dataclasses&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dataclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;logger = logging.getLogger(__name__)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;@dataclass&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ModelEndpoint&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; name: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; url: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: str&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; priority: int &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 越小优先级越高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; max_tokens: int&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; healthy: bool =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; last_check: float =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; failure_count: int =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ModelRouter&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;__init__&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.endpoints = [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;primary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-01:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;secondary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-02:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3.5-35B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;4096&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ModelEndpoint(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;fallback&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; url=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://gpu-server-03:8000&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; model=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Qwen/Qwen3-Coder-30B-A3B-FP8&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; priority=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max_tokens=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;2048&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ),&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;get_healthy_endpoint&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-&amp;gt; ModelEndpoint:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;返回优先级最高的健康端点&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; healthy = [ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep.healthy]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;not&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;healthy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 所有端点都不健康，强制重试主端点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.critical(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;All endpoints unhealthy, forcing primary&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.endpoints[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;].healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;return&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;sorted(healthy, key=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;lambda&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;x: x.priority)[&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mark_unhealthy&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self, endpoint: ModelEndpoint)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;False&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.failure_count +=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.warning(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Marked&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{endpoint.name}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;as unhealthy (failures:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{endpoint.failure_count}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mark_healthy&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self, endpoint: ModelEndpoint)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.healthy =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #56B6C2; line-height: 26px;&quot;&gt;True&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; endpoint.failure_count =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;health_check_all&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;(self)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;定期健康检查，恢复已修复的端点&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;import&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;requests&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;self.endpoints:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;try&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; resp = requests.get(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{ep.url}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/health&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, timeout=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;resp.status_code ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;200&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;not&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;ep.healthy:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.info(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;f&amp;quot;Endpoint&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{ep.name}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;recovered&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_healthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_unhealthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;except&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;Exception:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.mark_unhealthy(ep)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 注意事项&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2.1 常见错误汇总表&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误信息&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误码&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError: CUDA out of memory&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 gpu-memory-utilization / max-num-seqs / max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: device-side assert triggered&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型权重损坏或数值异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新下载模型，用 CUDA_LAUNCH_BLOCKING=1 调试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡通信失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 NVLink/PCIe，增大 shm-size&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 429 Too Many Requests&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;429&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求限流&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加 rate limit 或 burst，客户端加重试&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 503 Service Unavailable&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;503&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务不可用（加载中/崩溃）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查服务进程和日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 504 Gateway Timeout&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;504&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调大超时参数，检查 prompt 长度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Connection refused&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务未启动或端口错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查进程状态和端口监听&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OSError: [Errno 28] No space left on device&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘空间不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理磁盘，扩容&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ValueError: The model&amp;#39;s max seq len (X) is larger than...&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;max-model-len 超过模型支持的上限&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;降低 max-model-len&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KeyError: &amp;#39;model&amp;#39;&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;400&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求体缺少 model 字段&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查客户端请求格式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Model not found: xxx&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;404&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型名不匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;调用 /v1/models 确认模型名&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokenizer initialization error&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tokenizer 文件缺失或损坏&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新下载 tokenizer.json 和 tokenizer_config.json&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AssertionError: assert googly_batch_size &amp;gt; 0&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 内部错误（batch 为空）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;升级 vLLM 版本，通常是已知 bug&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: expected scalar type Float but found Half&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;精度类型不匹配&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;指定 --dtype float16 或 --dtype bfloat16&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: no kernel image is available&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 架构不支持&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 GPU 是否是 Ampere+，更新 PyTorch&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;五、故障排查和监控&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 系统化排错决策树&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文字版决策树，从症状开始逐步定位根因：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户报告&amp;quot;大模型服务异常&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 症状：请求返回错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 429 → 限流问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 检查 Nginx 限流配置 → 调大 rate/burst&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 检查 vLLM 队列 → 调大 max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 检查 Token 配额 → 充值/调额度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 500/502/503 → 服务端错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── 进程存活？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── 不存在 → 检查 OOM Kill (dmesg) → 调大内存/降低负载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; └── 存在 → 查 vLLM 日志 → 根据错误类型处理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 多个实例？检查负载均衡健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── HTTP 504 → 超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── TTFB 大？→ TTFT 超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── GPU 利用率 &amp;gt; 95%？→ 扩容或限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; ├── 等待队列长？→ 降低并发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; │ &amp;nbsp; └── prompt 太长？→ 限制输入长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── Total 大但 TTFB 正常？→ TPS 低&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── GPU 温度 &amp;gt; 83°C？→ 散热问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── KV Cache swap？→ 降低 max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 连接拒绝 → 服务未启动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 端口监听？→ ss -tlnp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 防火墙？→ iptables -L&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 模型加载中？→ 看启动日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 症状：请求变慢（没报错但延迟高）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── 全部请求都慢 → 全局问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── GPU 利用率 → 负载过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── segment compaction → 等待完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── 内存 swap → 加内存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── 部分请求慢 → 个别请求问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── 长 prompt → 正常现象，优化 prefill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 特定用户 → 检查是否触发限流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 症状：服务进程消失&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── Exit code 137 → OOM Killed&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; ├── 容器 OOM → 调大 memory limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; └── 系统 OOM → 加内存/加 swap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ├── Exit code 134 → SIGABRT (assertion)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; │ &amp;nbsp; └── CUDA error → 检查 GPU 状态和驱动&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; └── Exit code 139 → SIGSEGV (段错误)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 通常是 bug → 升级版本，提交 issue&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 日志关键字速查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在 vLLM 日志中 grep 这些关键字可以快速定位问题类型：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# OOM 相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OutOfMemory\|out of memory\|OOM\|oom_kill&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CUDA 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;CUDA error\|cuda.*error\|RuntimeError.*CUDA&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超时相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout\|timed out\|deadline exceeded&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 限流相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;rate limit\|too many\|queue full\|preempting&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型加载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;loading model\|model loaded\|weight.*load\|safetensors&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;cache.*block\|kv cache\|cache_usage\|swap&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# NCCL（多卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;NCCL\|nccl\|communicator\|all_reduce&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 进程退出&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;fatal\|shutting down\|exit\|signal\|killed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;/var/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/vllm/vllm.log&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个关键字对应的问题域：&lt;/span&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto;&quot;&gt;&lt;table width=&quot;657&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;关键字&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题域&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;紧急程度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OutOfMemory&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU/CPU 内存不足&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 服务可能崩溃&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 异常&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 需要重启&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;timeout&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求超时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 影响用户体验&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;preempting&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 不足，抢占&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 部分请求被中断&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;queue full&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;并发过高&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中 - 新请求被拒绝&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NCCL&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多卡通信&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高 - 可能导致卡死&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(255, 255, 255); width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;swap&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KV Cache 换出到 CPU&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低 - 性能下降但不影响正确性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 监控指标和告警配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.1 Prometheus 监控指标&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 0.7.x 暴露的关键 metrics（通过 /metrics 端点）：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.99, sum(rate(vllm:e2e_request_latency_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TTFT（Time To First Token）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.99, sum(rate(vllm:time_to_first_token_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# TPS（Time Per Output Token）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;histogram_quantile(0.50, sum(rate(vllm:time_per_output_token_seconds_bucket[5m])) by (le))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# GPU 缓存使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:gpu_cache_usage_perc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# CPU 缓存使用率（swap）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:cpu_cache_usage_perc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 等待队列长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:num_requests_waiting&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 正在处理的请求数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm:num_requests_running&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 请求成功/失败计数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:request_success_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:request_failure_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Prompt Token 吞吐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:prompt_tokens_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# Generation Token 吞吐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rate(vllm:generation_tokens_total[5m])&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.2 Prometheus 告警规则&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# /etc/prometheus/rules/vllm_alerts.yml&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;groups:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm_critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU OOM 风险&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMGPUCacheNearFull&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:gpu_cache_usage_perc&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0.95&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;2m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU KV Cache 使用率超过 95%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;实例&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.instance }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，当前使用率&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，即将 OOM&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;runbook:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;降低 max-num-seqs 或重启服务&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 服务不可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMServiceDown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;up{job=&amp;quot;vllm&amp;quot;}&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;1m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM 服务不可用&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;实例&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.instance }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;已经 1 分钟无法访问&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 请求失败率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighErrorRate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum(rate(vllm:request_failure_total[5m]))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (sum(rate(vllm:request_success_total[5m])) + sum(rate(vllm:request_failure_total[5m])))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt; 0.05&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;critical&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;vLLM 请求失败率超过 5%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前失败率&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;name:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm_warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;rules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TTFT 过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighTTFT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;histogram_quantile(0.99,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(vllm:time_to_first_token_seconds_bucket[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(le))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;5&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;TTFT P99 超过 5 秒&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前 TTFT P99:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 等待队列过长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMQueueBacklog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:num_requests_waiting&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;3m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;等待队列积压超过 50 个请求&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前等待:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，考虑扩容或限流&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 温度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;GPUTemperatureHigh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;nvidia_smi_temperature_gpu&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;83&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;GPU 温度超过 83°C&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;GPU&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $labels.gpu }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;°C，可能触发降频&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache swap 发生&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMKVCacheSwap&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;vllm:cpu_cache_usage_perc&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;检测到 KV Cache swap 到 CPU&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;CPU cache 使用率:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value | humanizePercentage }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，TPS 会下降&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# E2E 延迟过高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;alert:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;VLLMHighLatency&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;expr:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;histogram_quantile(0.99,&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;sum(rate(vllm:e2e_request_latency_seconds_bucket[5m]))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;(le))&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;for:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;5m&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;labels:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;severity:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;warning&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;annotations:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;summary:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;端到端 P99 延迟超过 30 秒&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;description:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;当前 P99:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{{ $value }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 18px; line-height: 1.5em; letter-spacing: 0em; font-weight: bold; display: block; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3.3 Grafana Dashboard 面板建议&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐创建以下面板（按行排列）：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一行：概览&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务状态（Up/Down 指示灯）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前 QPS（实时数字）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;请求成功率（百分比）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;等待队列长度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二行：延迟&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TTFT P50/P95/P99 时序图&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;E2E Latency P50/P95/P99 时序图&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每请求 Token 输出速度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三行：资源&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 显存使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU KV Cache 使用率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 利用率和温度&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPU 内存使用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四行：吞吐&lt;/strong&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prompt Tokens/s&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Generation Tokens/s&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Running requests vs Waiting requests&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;六、总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 技术要点回顾&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;大模型服务的故障 80% 集中在超时、限流、OOM 三类。系统化的排错方法比经验更可靠——从症状出发，逐层排查，到根因止步&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;超时问题要分清是 TTFT 慢（prefill 阶段）还是 TPS 低（decode 阶段）还是连接超时（网络层），三者的排查路径完全不同&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU OOM 的根因通常是 max-num-seqs、max-model-len、gpu-memory-utilization 三个参数的组合不合理。不要凭感觉调，用公式算出 KV Cache 的实际需求&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;限流配置要分层：Nginx 做第一层粗粒度限流，vLLM 的 max-num-seqs 做第二层保护，客户端做重试和降级。三层配合才能既保护服务又不影响用户&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;容器环境的 OOM Killed 和 GPU OOM 是两回事：前者是 CPU 内存不够（cgroup limit），后者是显存不够。区分清楚才能对症下药&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防大于治疗：部署前过检查清单，运行时盯核心监控，故障时靠自愈机制兜底&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 进阶学习方向&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 源码分析&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：了解 PagedAttention、Continuous Batching、Speculative Decoding 的实现原理，有助于理解性能瓶颈的本质。推荐从&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; height: auto; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vllm/core/scheduler.py&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;开始读。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;GPU 性能调优&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：CUDA Profiler（nsys/ncu）的使用、kernel 级别的性能分析。这块对排查&amp;quot;GPU 利用率高但吞吐上不去&amp;quot;的问题很有帮助。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgb(0, 0, 0); line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分布式推理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Pipeline Parallelism、Tensor Parallelism、Expert Parallelism 的运维差异，多机多卡环境下 NCCL 的故障排查。&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 参考资料&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM 官方文档 - 配置参数和 API 参考&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;vLLM GitHub - Issue tracker 是排查已知 bug 的好地方&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NVIDIA GPU 故障排查指南 - CUDA 错误排查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;NCCL 官方文档 - 多卡通信故障排查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Prometheus Alerting Rules - 告警规则语法参考&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;附录&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;A. 报错速查表&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;&lt;/mpcpc&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br/&gt;错误码/信息 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 原因 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 解决方案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;─────────────────────────────────────────────────────────────────────────────────────────────&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 429 Too Many Requests &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 请求速率超过限流配置 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大 rate limit 或 burst&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 500 Internal Server Error &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务端内部错误 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 查看 vLLM 日志定位具体错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 502 Bad Gateway &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 后端服务不可用 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查 vLLM 进程是否存活&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 503 Service Unavailable &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务过载或维护中 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查负载和健康检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HTTP 504 Gateway Timeout &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 请求处理超时 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大超时参数或降低 prompt 长度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;torch.cuda.OutOfMemoryError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ GPU 显存不足 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 降低 gpu-memory-utilization/max-num-seqs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: out of memory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ CUDA 内存分配失败 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 重启进程，调整显存参数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CUDA error: device-side assert triggered &amp;nbsp; &amp;nbsp; &amp;nbsp; → GPU 计算异常 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查模型文件，用 BF16&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RuntimeError: NCCL communicator was aborted &amp;nbsp; &amp;nbsp;→ 多卡通信断开 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查 GPU 拓扑和 shm-size&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OSError: No space left on device &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 磁盘满 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 清理日志和临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ConnectionRefusedError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 服务未启动 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查进程和端口&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ValueError: max_model_len too large &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 上下文长度超过模型支持 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 降低 max-model-len&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OOM Killed (exit code 137) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 容器/系统内存限制 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 调大 memory limit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SIGABRT (exit code 134) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 致命 assertion 失败 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 查日志，通常是 CUDA/NCCL 错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;KeyError: &amp;#39;choices&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 响应格式异常 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 服务端可能返回了错误，检查完整响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;asyncio.TimeoutError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → 客户端异步超时 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 调大 aiohttp/httpx timeout&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ssl.SSLError &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → TLS 证书问题 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ 检查证书有效期和配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;B. vLLM 关键参数速查&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型相关&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--model &amp;lt;path_or_name&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模型路径或 HuggingFace 名称&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--dtype auto|float16|bfloat16 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 推理精度，auto 自动选择&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--quantization fp8|awq|gptq &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 量化方式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-model-len &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大上下文长度（prompt + generation）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--trust-remote-code &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 允许执行模型仓库中的自定义代码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 显存和缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization &amp;lt;0-1&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# GPU 显存使用比例（默认 0.9）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--swap-space &amp;lt;GB&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CPU swap 空间大小（默认 4）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--kv-cache-dtype auto|fp8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# KV Cache 精度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 并发和调度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-seqs &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大并发序列数（默认 256）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-num-batched-tokens &amp;lt;int&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每个 batch 最大 token 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用分块预填充（推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--max-paddings &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 最大 padding 数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 多卡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 张量并行度（用多少张卡）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--pipeline-parallel-size &amp;lt;int&amp;gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 流水线并行度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--host &amp;lt;ip&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监听地址（默认 localhost）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--port &amp;lt;int&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监听端口（默认 8000）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--request-timeout &amp;lt;seconds&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 单请求超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;disable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-log-requests &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不记录每个请求（生产环境推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-metrics &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用 Prometheus metrics（默认启用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; line-height: 1.8em; letter-spacing: 0em; text-indent: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用参数组合速查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 小模型（&amp;lt; 10B），单卡，追求低延迟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization 0.85 --max-num-seqs 32 --max-model-len 32768&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 中模型（10-30B），单卡 A100 80G，平衡配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--gpu-memory-utilization 0.88 --max-num-seqs 128 --max-model-len 16384 --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;enable&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-chunked-prefill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大模型（30-70B），双卡 A100 80G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size 2 --gpu-memory-utilization 0.9 --max-num-seqs 200 --max-model-len 16384&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 超大模型（&amp;gt; 70B），4 卡 A100 80G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;--tensor-parallel-size 4 --gpu-memory-utilization 0.92 --max-num-seqs 256 --max-model-len 8192&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606240958585304550.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;622&quot; height=&quot;208&quot; style=&quot;width: 622px; height: 208px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Fri, 10 Apr 2026 09:57:30 +0800</pubDate></item><item><title>运维必备：OpenClaw Workspace 实战手册</title><link>https://www.kubernetes.top/?id=463</link><description>&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); text-align: center; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606241004508987284.jpg&quot; alt=&quot;84e39e76a92f4dd348c508775d0f2da6.jpg&quot; width=&quot;764&quot; height=&quot;432&quot; style=&quot;width: 764px; height: 432px;&quot;/&gt;&lt;/section&gt;&lt;h1 data-tool=&quot;mdnice编辑器&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(37, 132, 181); align-items: unset; border-style: none none solid; border-width: 1px; border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-size: 20px; color: #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;前言&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文档从运维工程师视角出发，系统阐述 OpenClaw Workspace 的生产环境部署、配置管理、故障诊断、安全加固和自动化运维实践。所有内容基于 OpenClaw 官方文档和实际生产经验，面向具备基础操作能力的运维人员。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;本文与《OpenClaw 进阶配置与自动化运维实战手册》形成互补：前者侧重 Gateway、渠道和 Cron 等系统级配置，后者聚焦 Workspace 这一 Agent 运行环境的规划与运维。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;第一章：Workspace 概念再定义——运维视角&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;1.1 配置文件体系与内容文件体系的分离&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;OpenClaw 的 Workspace 本质上是将 Agent 的运行环境拆分为两个正交体系：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件体系&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;（静态定义）&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;~/.openclaw/openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;，系统宪法，定义 Gateway 行为和 Agent 运行时参数&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;AGENTS.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：工作手册，定义任务执行流程、安全边界、输出规范&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;SOUL.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：性格配置，定义 Agent 响应风格和交互模式&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;IDENTITY.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：身份元数据，定义名称、头像、视觉标识&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;TOOLS.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：工具权限，定义允许使用的工具及其使用策略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内容文件体系&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;（动态数据）&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;USER.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：用户档案，包含用户偏好、历史交互摘要&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;memory/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;：长期记忆目录，包含结构化日志、项目状态、教训记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; visibility: visible;&quot;&gt;Session 历史：每次对话的上下文记录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解这一分离架构是 Workspace 运维的基础。配置文件决定 Agent 能做什么、怎么做；内容文件决定 Agent 知道什么、记得什么。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.2 Workspace 在生产环境中的角色&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在生产部署场景下，Workspace 承担以下核心职责：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境隔离&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：每个 Agent 实例拥有独立的 Workspace，避免配置和记忆污染。生产环境建议为不同用途的 Agent（主助手、专项任务、自动化任务）分配独立 Workspace。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;状态持久化&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：通过 memoryFlush 机制，Agent 的重要记忆会持久化到文件系统。Workspace 的备份策略直接影响 Agent 的长期记忆完整性。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置载体&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 内的配置文件定义了 Agent 的行为规范。修改 Workspace 配置比修改全局&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;更轻量，适合快速切换 Agent 行为模式。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计追踪&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 的变更历史可以纳入 Git 版本控制，实现配置的可审计和可回滚。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.3 Workspace 路径与加载机制&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;默认 Workspace 位置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径优先级&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 配置中显式指定的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;路径（最高优先级）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;agents.defaults.workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;配置项&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（默认）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证 Workspace 路径&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看当前 Agent 的 Workspace 路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动时指定 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway start --workspace /path/to/custom/workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录存在性要求&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 启动时，如果指定的 Workspace 目录不存在，会自动创建。因此首次启动时会看到 memory/、logs/ 等子目录被初始化。如果目录存在但无内容，Gateway 会执行 bootstrap 流程，生成默认的配置文件。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二章：Workspace 目录结构与生产环境规划&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.1 标准目录布局&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境的 Workspace 应采用规范的目录结构，便于维护和自动化管理：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── openclaw.json &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 全局系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-main/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 主 Agent Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── AGENTS.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── SOUL.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 性格配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── USER.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── IDENTITY.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 身份标识&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── TOOLS.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工具权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; ├── memory/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 长期记忆&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── projects.md &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 项目状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── infra.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 基础设施配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; ├── lessons.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 踩坑教训&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; │ &amp;nbsp; └── YYYY-MM-DD.md &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── sessions/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Session 历史（可选）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-dev/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 开发专用 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── workspace-work/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作任务 Workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ &amp;nbsp; └── ...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── cron/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Cron 任务配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── logs/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Gateway 日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.2 多环境 Workspace 隔离策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境划分原则&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用途&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置倾向&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;风险等级&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-main&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主力助手，日常对话&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保守，稳定优先&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-dev&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发测试，新功能验证&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;激进，可快速迭代&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;workspace-work&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专项任务自动化&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中等，根据任务调整&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, default: true, workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-dev&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;work&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-work&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.3 备份策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份范围&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 备份应覆盖以下内容：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有配置文件（AGENTS.md、SOUL.md、USER.md、IDENTITY.md、TOOLS.md）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录下的所有记忆文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;可选：sessions/ 目录（包含完整对话历史）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份频率建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;内容类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份频率&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保留周期&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日增量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每次变更后&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;90 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每周&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;30 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份脚本示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# workspace-backup.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;BACKUP_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/backups/openclaw/workspace&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw/workspace-main&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TIMESTAMP=$(date +%Y%m%d-%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建备份目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/config-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TIMESTAMP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/USER.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/IDENTITY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份记忆目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TIMESTAMP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.tar.gz&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -C&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 清理旧备份（保留 30 天）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-name&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*.tar.gz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-mtime +30 -delete&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2.4 磁盘空间管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 长期运行后，memory/ 目录可能膨胀。需要监控以下指标：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 Workspace 目录大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 memory/ 目录大小分布&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/*&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看 sessions/ 目录大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;磁盘告警阈值&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 单目录超过 100MB：告警&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/ 单目录超过 500MB：考虑归档或清理&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 根目录超过 1GB：全面检查&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三章：核心文件分类解析&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.1 openclaw.json——系统宪法&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;是全局配置文件，位于&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/openclaw.json&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，采用 JSON5 格式。该文件在 Gateway 启动时加载，定义了整个系统的运行参数。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;核心配置项&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // Agent 默认配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; model: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; primary: &amp;quot;provider/claude-sonnet-4-20250514&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fallbacks: [&amp;quot;provider/claude-haiku-4-20250514&amp;quot;],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; timeoutSeconds: 600,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memoryFlush: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; softThresholdTokens: 4000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; heartbeat: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; every: &amp;quot;30m&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; activeHours: { start: &amp;quot;08:00&amp;quot;, end: &amp;quot;23:00&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // Gateway 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; gateway: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; port: 18789,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; bind: &amp;quot;loopback&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auth: { mode: &amp;quot;token&amp;quot;, token: &amp;quot;your-secret-token&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; reload: { mode: &amp;quot;hybrid&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 渠道配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; channels: {},&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 日志配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; logging: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; level: &amp;quot;info&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; file: &amp;quot;/var/log/openclaw/gateway.log&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; // 向量检索配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; memorySearch: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; provider: &amp;quot;openai&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; remote: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; baseUrl: &amp;quot;https://api.siliconflow.cn/v1&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; apiKey: &amp;quot;your-api-key&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; model: &amp;quot;BAAI/bge-m3&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Schema 验证机制&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 采用严格 Schema 验证。未知配置键或类型错误会导致 Gateway 启动失败。验证命令：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw doctor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;该命令执行完整的配置文件检查，包括 JSON5 语法、必填项、API Key 格式等。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置路径访问&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置采用点号分隔路径，如&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;agents.defaults.compaction.reserveTokensFloor&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。可通过 CLI 查询：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get gateway.port&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.2 AGENTS.md——工作规则&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md 是 Workspace 的工作手册，定义了 Agent 的任务执行流程、安全边界和输出规范。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 职责范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负责：主要职责描述&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不负责：明确排除的职责&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 任务执行流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;接收任务请求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;评估任务复杂度&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;规划执行步骤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行并验证结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;返回执行摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 安全边界&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止执行未经确认的删除操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止在生产环境直接修改配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;禁止透露系统内部架构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 确认流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高风险操作需要用户确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;涉及数据修改的操作需展示影响范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不可逆操作需二次确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 输出规范&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术文档使用 Markdown 格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码块需标注语言&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表格用于结构化数据展示&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结论需独立可读&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运维要点&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md 的变更会触发 Gateway 热重载（hybrid 模式下），无需重启进程。但热重载可能有短暂延迟，建议变更后执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;确认生效。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.3 SOUL.md——性格配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md 定义 Agent 的响应风格和交互模式，影响对话的自然度和一致性。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 性格配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 响应风格&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;简洁优先，避免冗余&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术讨论注重逻辑和证据&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;复杂问题分步骤解释&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误反馈直接指出问题所在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 专业领域&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DevOps 实践：Ansible、CI/CD、容器化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;监控系统：Prometheus、Grafana&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志分析：ELK、Loki&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;云原生：Kubernetes、Helm&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 沟通偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用中文交流&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术术语配简要解释&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建议用表格或列表展示对比&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码示例包含注释说明&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;与 openclaw.json 的区别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md 定义的是&amp;quot;软性&amp;quot;行为规范，依赖 AI 模型理解执行；openclaw.json 定义的是&amp;quot;硬性&amp;quot;运行时参数，由系统强制执行。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.4 USER.md——用户档案&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 存储用户的基本信息、偏好设置和历史交互摘要。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;姓名：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;时区：Asia/Shanghai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;主要语言：中文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;角色：运维工程师&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 技术偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;熟悉系统：Linux、Docker、Kubernetes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常用工具：Ansible、Terraform、Prometheus&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码风格：注重可维护性，有注释习惯&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 偏好设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通知时段：工作日 09:00-22:00&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;输出格式：结构化，优先使用表格&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认阈值：高风险操作需明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 历史交互摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-01：完成监控系统重构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-02：优化 CI/CD 流水线&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前项目：微服务容器化迁移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;运维注意&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 的变更应记录在 memory/ 中，便于后续审计。避免在 USER.md 中存储敏感信息（如密码、密钥），此类内容应放在 openclaw.json 的环境变量或外部密钥管理系统中。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.5 TOOLS.md——工具权限&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 定义 Agent 可使用的工具及其使用策略，是安全加固的重要环节。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工具权限配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 可用工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 读取类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Read：读取文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Glob：按模式搜索文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Grep：搜索文件内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash（受限）：执行指定命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 写入类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Write：创建或覆写文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Edit：修改文件局部内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 执行类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash：执行 shell 命令（需白名单）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 使用限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止执行的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf /（任何递归删除）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dd（直接磁盘操作）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkfs（格式化操作）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;修改 /etc/passwd、/etc/shadow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 需要确认的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart/reload/stop&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除文件超过 1MB&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建系统用户或修改系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 仅隔离会话可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;apt-get/yum install&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker pull/push&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl delete（生产环境）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 白名单示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;允许执行的命令（完全信任）：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git pull/push/clone&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker ps/docker images&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl get/describe（仅查询）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;curl（仅 HTTP GET）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要确认的命令：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;docker run&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;kubectl apply&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ansible-playbook&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境应限制 Bash 工具的权限，仅在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sandbox&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;Workspace 中启用完全权限。main Workspace 应使用受限模式。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.6 IDENTITY.md——身份元数据&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;IDENTITY.md 定义 Agent 的视觉身份，包括名称、头像和对外展示的信息。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 身份配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;名称：运维助手&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;英文名：OpsAssistant&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;头像：默认头像（暂不自定义）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 功能标签&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化运维&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障诊断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 对外展示&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;介绍文本：专注于运维自动化的 AI 助手&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专长：服务器管理、监控告警、日志分析&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;3.7 memory/——长期记忆运维&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录是 Agent 的长期记忆存储中枢，采用分层结构设计。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录结构&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── projects.md &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 项目状态索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── infra.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 基础设施配置速查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── lessons.md &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 踩坑教训记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── YYYY-MM-DD.md &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每日日志归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;各文件用途&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用途&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更新频率&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;projects.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;各项目当前状态与待办&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目有进展时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;infra.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;服务器、API、部署配置速查&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置变更时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;lessons.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;踩坑记录，按严重程度分级&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;踩坑后&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;YYYY-MM-DD.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日原始记录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每日或多日&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY.md 入口设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录应包含&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY.md&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;作为入口索引：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 记忆索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 用户核心信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;详见：../USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 项目索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目A：projects.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-6vfkns&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;9bec&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#project&lt;/a&gt;-a&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目B：projects.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-zgg8dg&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;de08&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#project&lt;/a&gt;-b&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 最近重要上下文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;2026-03：完成监控系统重构，详见 2026-03.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当前主要任务：微服务容器化迁移&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 教训索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署相关：lessons.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-f6rpi4&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;8ca4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#deploy&lt;/a&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置相关：lessons.md&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mn4g9iix-3ivfvu&quot; data-topic=&quot;1&quot; data-recommend=&quot;&quot; link-id=&quot;e27c&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; -webkit-user-drag: none; cursor: default; max-width: 100%; color: rgb(87, 107, 149) !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;#config&lt;/a&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 基础设施&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;详见：infra.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四章：记忆系统运维——builtin 与 qmd 方案对比&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.1 两种方案概述&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 支持两种记忆实现方案：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;builtin 方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：使用 Agent 自己维护的文件系统（memory/ 目录）作为记忆存储。Agent 通过 memoryFlush 将对话中的重要信息写入文件。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;qmd 方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（量子记忆驱动？）：将记忆存储为结构化的 QMD 格式文件，提供更强的语义组织和检索能力。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.2 选型依据&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维度&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;builtin&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;qmd&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;实现复杂度&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;低&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检索能力&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;依赖 memorySearch 向量检索&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;更强的语义组织&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;维护成本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 自动维护&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;需要定期结构化整理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;个人助手、小型团队&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;知识密集型场景&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;推荐选择&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;个人使用或小规模场景：builtin 方案足够&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;企业知识管理、复杂检索需求：qmd 方案&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.3 记忆污染处理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆污染指 Agent 的记忆中出现错误、过时或矛盾的信息，影响后续对话质量。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;污染症状识别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 给出的信息与实际配置不符&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重复提示已解决的问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆中的项目状态与现实不一致&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;处理流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查记忆文件的最后修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查特定记忆文件的内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/memory/projects.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 识别污染源（查看日志或对话历史）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/memory/2026-03-20.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 修正或删除污染内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 直接编辑相关文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 验证修正效果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;预防措施&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush 生成的记忆内容应定期复核&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重大变更后主动更新记忆文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保持 MEMORY.md 索引的准确性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;4.4 清理策略&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期清理触发条件&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单个日志文件超过 100KB&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memory/ 目录总大小超过 500MB&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;项目状态文件超过 6 个月未更新&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理执行流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 评估清理必要性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 归档旧日志（按年度）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv ~/.openclaw/workspace-main/memory/2025-*.md \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 压缩归档文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf ~/.openclaw/workspace-main/memory/archive-2025.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 删除已归档的原始文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf ~/.openclaw/workspace-main/memory/archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 更新 MEMORY.md 索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化清理 Cron 任务&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;name&amp;quot;: &amp;quot;记忆目录清理&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;schedule&amp;quot;: { &amp;quot;kind&amp;quot;: &amp;quot;every&amp;quot;, &amp;quot;everyMs&amp;quot;: 604800000 },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;payload&amp;quot;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;kind&amp;quot;: &amp;quot;agentTurn&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;message&amp;quot;: &amp;quot;检查 memory/ 目录大小。如果超过 500MB，执行以下清理：\n1. 将超过 6 个月的日志归档到 archive/\n2. 压缩归档文件\n3. 删除原始日志\n4. 更新 MEMORY.md 索引&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;sessionTarget&amp;quot;: &amp;quot;isolated&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;quot;delivery&amp;quot;: { &amp;quot;mode&amp;quot;: &amp;quot;none&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五章：多 Agent 架构设计与资源隔离&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.1 Workspace 独立原则&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境中，不同用途的 Agent 应使用独立的 Workspace，实现配置隔离、记忆隔离和故障隔离。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离级别&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;级别&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;隔离内容&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;适用场景&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;完全隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;独立 Workspace、独立端口&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不同业务线&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享 Gateway，独立 Workspace&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;同业务线不同角色&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会话隔离&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享 Workspace，独立 session&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;临时任务&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置示例&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, default: true, workspace: &amp;quot;~/.openclaw/workspace-main&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-dev&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;ops&amp;quot;, workspace: &amp;quot;~/.openclaw/workspace-ops&amp;quot; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.2 共享与专属配置&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;共享配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（在 openclaw.json 中统一设置）：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway 端口和认证&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;渠道配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志级别&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;向量检索配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;专属配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（在各 Workspace 的文件中设置）：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;AGENTS.md：工作流程&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SOUL.md：性格偏好&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md：工具权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置继承&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 配置会合并 openclaw.json 的 defaults 和自身的显式配置。显式配置优先于 defaults。&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看某 Agent 的最终配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get --agent dev agents.defaults.workspace&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.3 权限边界&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Agent 间权限隔离&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;每个 Agent 的 Workspace 目录权限应限制为仅该 Agent 可读写：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 Workspace 权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 700 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 不同 Workspace 使用不同系统用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw-main:openclaw-main ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw-dev:openclaw-dev ~/.openclaw/workspace-dev/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工具权限边界&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 中定义的工具权限仅在该 Workspace 内有效。跨 Agent 调用工具时，各自受各自 TOOLS.md 的约束。&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;5.4 多 Agent 场景下的资源分配&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;模型资源分配&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, model: { primary: &amp;quot;claude-opus-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;dev&amp;quot;, model: { primary: &amp;quot;claude-sonnet-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;batch&amp;quot;, model: { primary: &amp;quot;claude-haiku-4-20250514&amp;quot; } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Token 预算分配&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过 compaction 配置控制各 Agent 的上下文消耗：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; list: [&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;main&amp;quot;, compaction: { reserveTokensFloor: 25000 } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; { id: &amp;quot;batch&amp;quot;, compaction: { reserveTokensFloor: 10000 } },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ],&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第六章：Skill 体系运维&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.1 Skill 加载层级&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OpenClaw 的 Skill 体系支持多层级加载，从低到高依次为：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级一：系统级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;位置：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/skills/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;范围：全局生效，所有 Agent 共享&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级二：Workspace 级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;位置：&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; color: rgb(37, 132, 181); font-size: 14px; line-height: 1.8em; letter-spacing: 0em; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-&amp;lt;name&amp;gt;/skills/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;范围：仅在该 Workspace 内生效&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;层级三：会话级 Skill&lt;/strong&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;随对话上下文动态加载，不持久化&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加载优先级&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：会话级 &amp;gt; Workspace 级 &amp;gt; 系统级（高优先级覆盖低优先级）&lt;/span&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.2 故障定位&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 不生效的排查流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认 Skill 文件存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/skills/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/skills/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查 Skill 文件语法&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/skills/my-skill.md | head -50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 验证 Skill 是否被加载（查看日志）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;skill\|load&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试 Skill 是否可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在对话中触发 Skill 关键字，观察响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见问题&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 文件格式错误：Skill 定义不符合规范，被静默忽略&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径问题：Skill 放置在错误的目录层级&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限问题：Skill 文件不可读&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;6.3 版本管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 版本跟踪&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;建议在 Skill 文件顶部添加版本信息：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;---&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;name: 运维工具集&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;version: 2026.03.1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;author: OpsTeam&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;lastUpdated: 2026-03-15&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;---&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 运维工具集 Skill&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 功能列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 更新流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;在测试环境验证新版本 Skill&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份当前版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;替换 Skill 文件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证生效&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记录变更日志&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 回滚&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份当前版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp ~/.openclaw/skills/my-skill.md \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/skills/my-skill.md.backup-$(date +%Y%m%d)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 回滚到指定版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp ~/.openclaw/skills/my-skill.md.backup-20260315 \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/skills/my-skill.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第七章：故障诊断与排查清单&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.1 配置不生效&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：修改 AGENTS.md、SOUL.md 等 Workspace 配置文件后，Agent 行为未改变。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 确认文件已保存且内容正确&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/AGENTS.md | head -30&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查文件修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/AGENTS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 触发热重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 等待 10 秒后测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 向 Agent 发送测试消息，观察行为&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 查看日志确认重载完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;reload\|AGENTS&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;常见原因&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;原因&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;解决方案&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件编码问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确保 UTF-8 编码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;语法错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新检查 Markdown 格式&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;缓存未刷新&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/code&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置路径错误&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;确认文件在正确的 Workspace 内&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.2 权限问题&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 无法读取配置文件、无法写入记忆文件、无法执行工具。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查文件权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -ld ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 测试文件可读性（以运行用户身份）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw cat ~/.openclaw/workspace-main/AGENTS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试文件可写性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw touch ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-write&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo -u openclaw rm ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;test&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-write&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 Tool 执行权限（TOOLS.md）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat ~/.openclaw/workspace-main/TOOLS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限修复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修复 Workspace 权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 600 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 修复特定目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700 ~/.openclaw/workspace-main/sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.3 记忆失效&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 无法回忆起之前对话中提到的信息，或 memoryFlush 未正常工作。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查 memoryFlush 配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.compaction.memoryFlush&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查记忆文件是否存在&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 检查记忆文件最后修改时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la ~/.openclaw/workspace-main/memory/*.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 测试 memorySearch 功能&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 向 Agent 询问需要检索历史记忆的问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 查看 memoryFlush 触发日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;memoryFlush\|compaction&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置修复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; agents: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; defaults: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compaction: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reserveTokensFloor: 20000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memoryFlush: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; softThresholdTokens: 4000,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.4 性能问题&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;症状&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Agent 响应缓慢、timeout 频发、资源占用过高。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;排查步骤&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 检查系统资源使用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway status --deep&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 检查进程状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ps aux | grep openclaw&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 查看 Gateway 日志中的性能相关警告&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw logs --grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;timeout\|slow\|performance&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;--lines 50&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 检查 Token 消耗&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw config get agents.defaults.compaction.reserveTokensFloor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 检查 memory/ 目录大小（可能导致加载缓慢）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;du -sh ~/.openclaw/workspace-main/memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能优化建议&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;增加&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;reserveTokensFloor&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;减少 compaction 频率&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开启&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;避免重要信息在 compaction 中丢失&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;定期清理 memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;考虑升级模型或增加 timeout 配置&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;7.5 故障排查清单汇总&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;首要检查项&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;快速修复命令&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置不生效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件存在性、语法正确性&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限问题&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件/目录权限、所有关系&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R openclaw:openclaw&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆失效&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memoryFlush 配置、文件存在&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;启用 memoryFlush&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工具不可用&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TOOLS.md 配置、工具开关&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查白名单&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;性能下降&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统资源、memory/ 大小&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;清理 memory/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;会话丢失&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;compaction 触发、session 存储&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查 sessions/ 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 不加载&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Skill 文件路径、语法正确&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;重新部署 Skill&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;向量检索失败&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;memorySearch 配置、API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;检查网络和 API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第八章：备份、迁移与版本控制&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.1 Workspace Git 化管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;将 Workspace 纳入 Git 版本控制，实现配置变更的可追溯和可回滚。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;初始化 Git 仓库&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git init&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git add AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git add memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git commit -m&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Initial workspace commit&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.gitignore 配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除会话历史（太大且不需要版本控制）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除临时文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;*.tmp&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;*.bak&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除归档&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;archive/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排除敏感配置（如有）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# *.local.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;分支策略&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;main&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：稳定版本，生产环境使用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dev&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：开发测试分支&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word; background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(27, 31, 35, 0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0, 0, 0) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;feature/*&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：新功能开发分支&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建开发分支&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git checkout -b dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 开发测试完成后合并到 main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git checkout main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;git merge dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.2 配置迁移流程&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景一：从开发环境迁移到生产环境&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 在开发环境打包配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -czf /tmp/workspace-dev-config.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md memory/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 传输到生产环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;scp /tmp/workspace-dev-config.tar.gz prod-server:/tmp/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 在生产环境解压（先备份现有配置）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;cd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mv AGENTS.md AGENTS.md.backup-$(date +%Y%m%d)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf /tmp/workspace-dev-config.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 验证迁移结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw doctor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;场景二：多环境同步配置模板&lt;/strong&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 配置同步脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TEMPLATE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/lib/openclaw/templates&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TARGET_DIRS=(&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-main&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-dev&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;~/.openclaw/workspace-ops&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;dir&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${TARGET_DIRS[@]}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Syncing to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$dir&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 触发所有 Gateway 重载&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;8.3 灾难恢复&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;数据恢复流程&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 1. 识别需要恢复的时间点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看备份列表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ls -la /var/backups/openclaw/workspace/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 2. 确认备份内容&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -tzf /var/backups/openclaw/workspace/config-20260320-120000.tar.gz&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 3. 停止 Gateway（避免数据写入）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl stop openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 4. 备份当前状态（恢复失败时的救命稻草）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp -r ~/.openclaw/workspace-main \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;~/.openclaw/workspace-main-crash-$(date +%Y%m%d-%H%M%S)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 5. 执行恢复&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tar -xzf /var/backups/openclaw/workspace/config-20260320-120000.tar.gz \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; -C ~/.openclaw/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 6. 启动 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo systemctl start openclaw-gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 7. 验证恢复结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway health&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway status&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RTO（恢复时间目标）和 RPO（恢复点目标）&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RTO： Gateway 重启时间，约 30 秒&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RPO： 最近一次备份时间，建议每日备份，RPO 不超过 24 小时&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第九章：配置模板与自动化&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.1 新环境快速初始化&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;初始化脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# init-workspace.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_NAME=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw/workspace-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ -z&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Usage:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;workspace-name&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建目录结构&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/sessions&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从模板复制配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;TEMPLATE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/lib/openclaw/templates&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/AGENTS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/SOUL.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/IDENTITY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cp&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TEMPLATE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/TOOLS.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 初始化 USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/USER.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用户档案&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 基本信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 姓名：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 时区：Asia/Shanghai&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 主要语言：中文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 技术偏好&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 熟悉系统：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 常用工具：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 偏好设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 通知时段：工作日 09:00-22:00&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 输出格式：结构化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 确认阈值：高风险操作需明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 初始化 MEMORY.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory/MEMORY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 记忆索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 用户核心信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 详见：../USER.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 项目索引&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- 无进行中项目&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;## 最近重要上下文&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;- Workspace 初始化完成&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod -R 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Workspace &amp;#39;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;#39; initialized at&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./init-workspace.sh dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./init-workspace.sh work&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.2 标准化模板&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准 AGENTS.md 模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工作手册&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 职责范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;负责：运维自动化、故障诊断、配置管理&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不负责：业务代码开发、硬件采购决策&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 任务执行流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;理解任务需求&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;评估执行方案和风险&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;必要时向用户确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;执行操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;验证结果并返回摘要&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 安全边界&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 禁止操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;未经确认的删除操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境直接修改系统配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;透露敏感信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 确认流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;高风险操作需要用户明确确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;不可逆操作需要二次确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 输出规范&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;技术文档使用 Markdown&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;代码块标注语言&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;结论独立可读&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;标准 TOOLS.md 模板&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;# 工具权限配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 可用工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 读取类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Read、Glob、Grep：始终可用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 写入类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Write、Edit：需在确认的路径下操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;### 执行类&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Bash：受限执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 禁止命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rm -rf 递归删除&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;直接磁盘操作（dd、mkfs）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;系统用户修改&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E06C75; line-height: 26px;&quot;&gt;## 需要确认的命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;systemctl restart/reload&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;删除超过 1MB 的文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;创建系统用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;9.3 配置校验&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;自动化校验脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# validate-workspace.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;WORKSPACE_DIR=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${1:-$HOME/.openclaw/workspace-main}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ERRORS=0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Validating Workspace:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;======================================&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查必需文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;for&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;in&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;do&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;ERROR: Missing&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ERRORS=$((ERRORS + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;OK:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$file&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;exists&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;done&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/ 目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;ERROR: Missing memory/ directory&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; ERRORS=$((ERRORS + 1))&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;OK: memory/ directory exists&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/MEMORY.md&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[ ! -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory/MEMORY.md&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;WARNING: Missing memory/MEMORY.md (recommended)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PERMS=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;stat&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;%a&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$PERMS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;700&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;WARNING: Workspace permissions are&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$PERMS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;, recommend 700&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查 memory/ 大小&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MEMORY_SIZE=$(du -sm&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$WORKSPACE_DIR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/memory&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;2&amp;gt;/dev/null | cut -f1)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$MEMORY_SIZE&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-gt 500 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;WARNING: memory/ is&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${MEMORY_SIZE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MB, consider cleanup&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;======================================&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;if&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;[&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$ERRORS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-eq 0 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;then&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Validation passed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;else&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Validation failed with&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$ERRORS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;error(s)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exit&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; line-height: 26px;&quot;&gt;fi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用方式&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./validate-workspace.sh ~/.openclaw/workspace-main&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./validate-workspace.sh ~/.openclaw/workspace-dev&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第十章：安全加固&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.1 文件权限&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限基线&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;路径&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;所有者&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;说明&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;仅 owner 可访问&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/openclaw.json&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;600&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Workspace 目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/AGENTS.md&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;600&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;工作手册&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/workspace-*/memory/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;~/.openclaw/logs/&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;700&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志目录&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;权限加固脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# harden-permissions.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_HOME=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$HOME&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/.openclaw&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_USER=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;openclaw&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OPENCLAW_GROUP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;openclaw&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建用户组（如需要）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo groupadd -f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sudo usermod -aG&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$USER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置主目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chown -R&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_USER&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_GROUP&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置配置文件权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 600&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/openclaw.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置 Workspace 目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/workspace-* -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;d -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;chmod 700 {} \;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;find&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/workspace-* -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;type&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;f -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;exec&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;chmod 600 {} \;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置日志目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mkdir -p&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/logs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chmod 700&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$OPENCLAW_HOME&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/logs&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Permissions hardened&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.2 敏感信息管理&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;敏感信息分类&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;示例&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储建议&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API Keys&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SiliconFlow API Key&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json（加密存储）或环境变量&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Tokens&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Gateway auth token&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw.json 或密钥管理系统&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;用户信息&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;USER.md 中的个人信息&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加密存储或脱敏处理&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;对话历史&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;sessions/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加密存储，访问审计&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量方案&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; memorySearch: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; remote: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; apiKey: &amp;quot;env:MEMORY_SEARCH_API_KEY&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;环境变量在运行时替换为实际值，配置文件本身不包含明文密钥。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;密钥管理系统集成&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;生产环境推荐使用 Vault 等密钥管理系统：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从 Vault 获取密钥&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;API_KEY=$(vault kv get -field=api_key secret/openclaw/memory-search)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 写入临时配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cat &amp;gt; /tmp/openclaw-override.json &amp;lt;&amp;lt; EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;memorySearch&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;remote&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;apiKey&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$API_KEY&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;EOF&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启动 Gateway&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;openclaw gateway start --config /tmp/openclaw-override.json&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.3 审计日志&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志配置&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; logging: {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; level: &amp;quot;info&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; file: &amp;quot;/var/log/openclaw/audit.log&amp;quot;,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; auditEnabled: true,&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; },&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志内容&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;配置变更：who、when、what changed&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;敏感操作：文件删除、命令执行、配置修改&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;认证事件：登录成功/失败&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;渠道事件：消息收发、渠道连接/断开&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志分析脚本&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 15px 16px 16px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; overflow-x: auto; color: rgb(171, 178, 191); background: rgb(40, 44, 52); border-radius: 5px; display: -webkit-box; font-family: Consolas, Monaco, Menlo, monospace; font-size: 12px;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# audit-analysis.sh&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOG_FILE=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/log/openclaw/audit.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 认证事件统计 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auth.*success&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep -c&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;auth.*fail&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 配置变更记录 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;config.*change&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 敏感操作记录 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;sensitive.*operation&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| tail -20&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;=== 最近 24 小时活动 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;grep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(date -d &amp;#39;1 day ago&amp;#39; +%Y-%m-%d)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日志保留策略&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); overflow-x: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;firstRow&quot;&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;类型&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;保留期&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); background: none left top / auto no-repeat scroll padding-box border-box rgb(235, 114, 80); max-width: 100%; color: rgb(248, 248, 248); font-size: 16px; line-height: 1.5em; letter-spacing: 0em; text-align: left; height: auto; border-radius: 0px; min-width: 85px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;存储位置&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;操作日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;90 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgb(0, 0, 0); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgb(248, 222, 203); width: auto; height: auto;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;审计日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;1 年&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/audit/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 0, 0); background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; width: auto; height: auto; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;错误日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;180 天&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgb(245, 203, 174); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/var/log/openclaw/errors/&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px 0px -11px; padding: 0px; outline: 0px; max-width: 100%; background-image: linear-gradient(45deg, transparent 48%, #2584B5 48%, #2584B5 52%, transparent 52%); background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: #000000; border-radius: 0px; box-shadow: none; color: #000000; display: inline-block; font-size: 22px; font-weight: bold; flex-direction: unset; float: unset; height: 30px; justify-content: unset; letter-spacing: 0px; line-height: 1.5em; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: 30px; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 10px; outline: 0px; max-width: 100%; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 2px; border-radius: 0px; box-shadow: none; display: inline-block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;10.4 安全检查清单&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;部署前检查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] openclaw.json 不包含明文密钥&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] Gateway 绑定到 loopback&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 认证 Token 足够复杂（32 位以上）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] Workspace 目录权限为 700&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 配置文件权限为 600&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 运行用户为专用非 root 用户&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;日常巡检&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查日志中是否有异常登录尝试&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查是否有未授权的配置变更&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查 memory/ 目录大小是否正常&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查磁盘空间使用情况&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 检查是否有新的 Skill 文件被添加&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;版本更新检查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 25px; outline: 0px; max-width: 100%; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 更新前备份完整 Workspace&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 在测试环境验证新版本&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 确认 Skill 兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 验证配置兼容性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 5px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(1, 1, 1); font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: left; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[ ] 记录升级步骤和回滚方案&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;h2 data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; font-weight: 400; font-size: 16px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; align-items: unset; border-style: none; border-width: 1px; border-color: rgb(0, 0, 0); border-radius: 0px; box-shadow: none; flex-direction: unset; float: unset; height: auto; justify-content: unset; line-height: 1.5em; overflow: unset; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 4px 0px 0px; outline: 0px; max-width: 100%; font-size: 18px; color: #2584B5; border-color: #000000 #000000 #2584B5; line-height: 1.5em; letter-spacing: 0em; align-items: unset; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: none none solid; border-width: 1px 1px 4px; border-radius: 0px; box-shadow: none; display: block; font-weight: bold; flex-direction: unset; float: unset; height: auto; justify-content: unset; overflow: unset; text-indent: 0em; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;总结&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;本文档从运维工程师视角系统阐述了 OpenClaw Workspace 的生产环境运维实践。核心要点如下：&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;架构理解&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Workspace 的核心是将配置体系（AGENTS.md、SOUL.md、TOOLS.md 等）与内容体系（USER.md、memory/）分离。前者定义 Agent 的行为能力，后者存储 Agent 的知识记忆。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;目录规划&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：生产环境应采用标准目录布局，通过独立 Workspace 实现多 Agent 隔离。备份策略应覆盖配置文件和记忆目录。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文件运维&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：各配置文件承担不同职责——openclaw.json 是系统宪法，AGENTS.md 是工作手册，TOOLS.md 是安全边界。理解各文件的职责边界是故障排查的基础。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;记忆管理&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：builtin 方案适合大多数场景，qmd 方案适合知识密集型需求。记忆污染应通过定期复核预防，清理策略应自动化。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;多 Agent 设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：通过独立 Workspace 实现配置、记忆和权限的隔离。共享配置在 openclaw.json 中管理，专属配置在各 Workspace 中管理。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;故障排查&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：遵循&amp;quot;配置不生效→权限问题→记忆失效→性能问题&amp;quot;的排查路径。快速修复命令和排查清单应在运维手册中固化。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;安全加固&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：权限最小化、敏感信息环境变量化、日志审计覆盖。安全检查清单应在部署前和日常巡检中执行。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;备份恢复&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;：Git 版本控制实现配置可追溯，tar 包实现定时备份，灾难恢复流程定义 RTO/RPO。迁移脚本实现多环境同步。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;通过遵循本文档的实践，运维团队可以建立规范的 Workspace 运维体系，确保 OpenClaw 在生产环境中的稳定运行。&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-style: solid none none; border-right-width: 3px; border-bottom-width: 3px; border-left-width: 3px; border-color: rgb(37, 132, 181) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4); border-radius: 0px; width: auto; height: 1px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; text-indent: 0em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;文档版本：2026.03&lt;/em&gt;&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(37, 132, 181); background: none 0% 0% / auto no-repeat scroll padding-box border-box rgba(0, 0, 0, 0); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;参考来源：OpenClaw 官方文档（openclaw.cc）&lt;/em&gt;&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; color: rgba(0, 0, 0, 0.9); font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-wrap-mode: wrap; font-family: &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;em style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(178, 178, 178); font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 12px; letter-spacing: 0.544px; text-align: right; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;（版权归原作者所有，侵删）&lt;/em&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #B2B2B2; font-size: 15px; letter-spacing: 0.408px; text-align: left; word-spacing: 1px;&quot;&gt;免责声明：本文内容来源于网络，所载内容仅供参考。转载仅为学习和交流之目的，如无意中侵犯您的合法权益，请及时联系Docker中文社区！&lt;/span&gt;&lt;/p&gt;&lt;hr style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; text-align: center; widows: 1; letter-spacing: 0.408px; border-style: solid; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-color: rgba(0, 0, 0, 0.098); transform-origin: 0px 0px 0px; transform: scale(1, 0.5); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;p style=&quot;-webkit-tap-highlight-color: transparent; margin-top: 0px; margin-bottom: 24px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); word-spacing: 2px; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 14px; letter-spacing: 1px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: mp-quote, &amp;quot;PingFang SC&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.034em; text-align: justify;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: transparent; margin: 10px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.544px; text-wrap-mode: wrap; background-color: rgb(255, 255, 255); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; word-spacing: 2px; text-align: center; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/06/202606241005126932963.png&quot; alt=&quot;Docker中文社区_扫码_搜索.png&quot; width=&quot;600&quot; height=&quot;200&quot; style=&quot;width: 600px; height: 200px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 30 Mar 2026 10:03:52 +0800</pubDate></item></channel></rss>